PHP DOMXpath获取嵌套值


PHP DOMXpath getting nested values

我使用DOMDocument和DOMXpath来解析一个html页面。

标记如下:

<dl>
  <dt>
   <a href="">name</a>
  </dt>
  <dd>
   <span class="one">one</span>
   <span class="two">two</span>
  </dd>
</dl>
<dl>
  <dt>
   <a href="">name</a>
  </dt>
  <dd>
   <span class="one">one</span>
   <span class="two">two</span>
  </dd>
</dl>

最初,我只需要获得href值,并能够使用:

  $doc = new 'DOMDocument();
  $doc->loadHTML($html);
  $xpath = new 'DOMXPath($doc);
  $res = $xpath->query('//dl/dt/a');

然后使用->nodeValue->getAttribute('href')遍历结果

但是,现在我还想获得span标签中的值,类的值为'two'。

所以我更新了我的查询到$xpath->query('//dl')

问题是,我现在如何获得href标签和值以及具有类名的span值。此外,任何关于如何调试或显示查询路径的建议都将非常有帮助。

谢谢!

直接使用path:

获取这些值
$res = $xpath->query('//a/@href');

和span-tag内的内容:

$res = $xpath->query("//span[@class='two']");

您可以在这里测试xpath: http://www.xpathtester.com