我有一个像这样的xml:
<p>tex text</p>
<p><a2>subchild text</a2> text text text</p>
我想以书面顺序提取所有文本(来自p和所有子节点)并将结果放入字符串中。 我使用以下查询
$text = $currentNode->xpath("p[not(@class='notes')]/text())
foreach($text as $tex) {
$finalText .= $tex." ";
}
问题是我无法获取子节点文本,例如节点&#39; a2&#39;在我的例子中。 有帮助吗?感谢
答案 0 :(得分:0)
/ text()仅查找直接文本节点,// text()查找直接或较低节点。它是descendent-or-self :: text()的缩写。
所以你的查询只需要一个额外的斜杠:
$text = $currentNode->xpath("p[not(@class='notes')]//text());
(假设您只想要文本而不是子元素的副本)。