【问题标题】:PHP DOMXpath getting nested valuesPHP DOMXpath获取嵌套值
【发布时间】:2013-02-20 13:21:13
【问题描述】:

我正在使用 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');

然后使用-&gt;nodeValue-&gt;getAttribute('href') 遍历结果

但是,现在我还想在 span 标记中获取值为“two”的类的值。

所以我将查询更新为$xpath-&gt;query('//dl')

问题是,我现在如何获取 href 标记和值以及带有类名的 span 值。此外,任何有关如何调试或显示查询路径的建议都会很有帮助。

谢谢!

【问题讨论】:

    标签: php dom xpath domdocument


    【解决方案1】:

    使用路径直接获取这些值:

    $res = $xpath->query('//a/@href');
    

    以及跨度标签内的内容:

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

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

    【讨论】:

      猜你喜欢
      • 2012-05-10
      • 1970-01-01
      • 1970-01-01
      • 2022-01-22
      • 2021-10-25
      • 2020-04-08
      • 1970-01-01
      • 2023-01-14
      • 1970-01-01
      相关资源
      最近更新 更多