2017-06-09 1 views
0

私はPHPに非常に新しいです、と私は私が良い例につまずいたので、例えばIDを持つすべてのH2のためにこれを行う方法を知っている:?カール特定のdivクラステキストと表示を再PHP

<?php 
$html = file_get_contents('http://pokemondb.net/evolution'); //get the html 
returned from the following url 

$pokemon_doc = new DOMDocument(); 

libxml_use_internal_errors(TRUE); //disable libxml errors 

if(!empty($html)){ //if any html is actually returned 

$pokemon_doc->loadHTML($html); 
libxml_clear_errors(); //remove errors for yucky html 

$pokemon_xpath = new DOMXPath($pokemon_doc); 

//get all the h2's with an id 
$pokemon_row = $pokemon_xpath->query('//h2[@class]'); 

if($pokemon_row->length > 0){ 
    foreach($pokemon_row as $row){ 
     echo $row->nodeValue . "<br/>"; 
    } 
} 
} 
?> 

しかし、これを代わりにdivクラスを使用するソースに適用したいと思います。例の場合:

私は考え出し
<div class="marketdata"> 
    <span class="market_item market_name">NASDAQ</span> 
    <span class="market_item market_price">99999</span> 
    <span class="market_item market_price is-positive "> 
    +24.38(0.39%)</span> 

は、多分ちょうどこのようなコードに機能再:しかし

//get all the h2's with an id 
$pokemon_row = $pokemon_xpath->query('//marketdata[@class]'); 

、動作しない、それはその柔軟ではありません。 divクラスを参照する新しいアプローチが必要です。私はそれが何であるかについてのあらゆる考えを持っていますか?心から感謝する! -Wilson

+0

また、別の方法で特定のdivをカールするという実例を知っていれば、それは完全に機能します。 – Masteryogurt

+0

次の例が好きかどうかを確認してください。 https://stackoverflow.com/questions/12522465/php-xpath-get-contents-of-div-with-class – chelista

+0

このコメントをいただきありがとうございます。私はそこにロジックを見ていますが、私が上記の作業コードに挿入することはできません。一緒に走るためのヒントこれは提供されたコードでした:foreach($ xpath-> query( '// div [@ class = "parbase cn_text"]')$ div){ $ num ++; echo "$ num。"; // ???? echo $ div-> textContent; echo "
"; } – Masteryogurt

答えて

0

解決済み。完璧ではありませんが、これは実際には働いています

<?php 

$doc = new DOMDocument; 

// We don't want to bother with white spaces 
$doc->preserveWhiteSpace = false; 

// Most HTML Developers are chimps and produce invalid markup... 
$doc->strictErrorChecking = false; 
$doc->recover = true; 

$doc->loadHTMLFile('http://www.nbcnews.com/business'); 

$xpath = new DOMXPath($doc); 

$query = "//div[@class='market']"; 

$entries = $xpath->query($query); 
var_dump($entries->item(0)->textContent); 

?> 
関連する問題