【问题标题】:Correct XPath query to fetch div inner text更正 XPath 查询以获取 div 内部文本
【发布时间】:2013-06-12 20:54:17
【问题描述】:

我正在使用 XPath 查询 HTML 文档,其中有以下 div 有文本:

<div class="h1">2008 Honda Accord Coupe<small> — Wuse II</small></div>

我只想获取&lt;div class="h1"&gt;2008 Honda Accord Coupe 的内部文本,而不包括&lt;small&gt;inner text&lt;/small&gt;

我正在执行以下 XPath 查询://div[@class='h1'],它肯定会返回整个 &lt;div&gt;...&lt;/div&gt; 节点。

如果没有&lt;small&gt;...&lt;/small&gt;,我怎样才能只获取部分

谢谢

【问题讨论】:

  • 除非您没有指定您使用的 XML 解析器,否则这很难说。例如。使用 SimpleXML,您只需将该元素转换为字符串即可。使用 DOMDocument,您可以查询文本节点,如 One Trick Pony 所示。但正确的答案是:这取决于您使用的库/解析器。你不说是哪一个,所以很难回答,因为缺少信息。

标签: html dom xpath


【解决方案1】:

使用text()函数:

//div[@class='h1']/text()

phpFiddle测试

【讨论】:

    【解决方案2】:

    你可以这样做:

    $name = trim($xpath->query('//div[@class="h1"]')->item(0)->childNodes->item(0)->nodeValue);
    
    var_dump($name);
    

    【讨论】:

      猜你喜欢
      • 2018-02-12
      • 1970-01-01
      • 2015-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-28
      • 1970-01-01
      相关资源
      最近更新 更多