如何使用xPath以下

问题描述:

我通过使用getElementById('rso')在php Dom中获得div“rso”数据,但php不允许通过“ClassName”获得,我需要获得的所有“子” <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。

<?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"; 
} 

试试下面XPath

//div[@class="srg"]//a/@href