2017-02-20 3 views
0

getElementById( 'rso')を使用してphp Domでdiv "rso"データを取得しましたが、PHPが "ClassName"で取得することを許可していません。"child"をすべて<div class =srg>を入力し、その中に「href」というタグを付けます。次のようにxPathを使用する方法

<div id=”rso”> 
    <div class= “_Nid”> 
     <div class = “srg”> 
      <div class =”g”> 
       <div class=”rc”> 
        <h3 class = “r”> 
         <a href > 
        </h3> 
       </div> 
      </div> 
      <div class =”g”>...</div> 
      <div class =”g”>...</div> 
      <div class =”g”>...</div> 
     </div> 
    </div> 
</div> 

どうすればいいのか教えてください。ここで働くことができるならxPathが使用されます。 XPath以下

答えて

1
<?php 
$html = <<<HTML 
<div id="rso"> 
    <div class="_Nid"> 
     <div class="srg"> 
      <div class="g"> 
       <div class="rc"> 
        <h3 class="r"> 
         <a href="http://my.site.com/lol.txt" > 
        </h3> 
        <h3 class="r"> 
         <a href="http://my.site.com/lol2.txt" > 
        </h3> 
        <h3 class="r"> 
         <a href="http://my.site.com/lol23.txt" > 
        </h3> 
       </div> 
      </div> 
      <div class="g">...</div> 
      <div class="g">...</div> 
      <div class="g">...</div> 
     </div> 
    </div> 
</div> 
HTML; 

$dom = new DOMDocument; 
$dom->loadHTML($html); 
$domxpath = new DOMXPath($dom); 
$filtered = $domxpath->query('//div[@class="srg"]//a/@href'); 
foreach ($filtered as $item) { 
    echo "$item->value\n"; 
} 
0

試してみてください。

//div[@class="srg"]//a/@href 
関連する問題