Xml xpath php按顺序选择文本和子节点
我有这样一个xml:Xml xpath php按顺序选择文本和子节点,xml,xpath,Xml,Xpath,我有这样一个xml: <p>tex text</p> <p><a2>subchild text</a2> text text text</p> 问题是我无法获取子节点文本,例如我的示例中节点“a2”的文本。 有什么帮助吗?谢谢/text()只查找即时文本节点,//text()查找即时或更低的节点。它是后代或self::text()的缩写 因此,您的查询只需要额外的斜杠: $text = $currentNode->x
<p>tex text</p>
<p><a2>subchild text</a2> text text text</p>
问题是我无法获取子节点文本,例如我的示例中节点“a2”的文本。
有什么帮助吗?谢谢/text()只查找即时文本节点,//text()查找即时或更低的节点。它是后代或self::text()的缩写
因此,您的查询只需要额外的斜杠:
$text = $currentNode->xpath("p[not(@class='notes')]//text());
(假设您只需要文本,而不是子元素的副本)。是的,它可以工作,但我得到的子节点顺序相反,例如在上面的示例中,我得到:“tex text,text subchild text”。为什么?你在用什么?我使用了xsltproc和php,并且都按照预期的顺序给了子级:text 1text 2 text 3给出了“text 1 text 2 text 3”,我使用的是SimpleXMLElement::xpath和php。我在SimpleXmlObjective上使用xpath,我不确定simpleXML的一致性如何。尝试使用DomDocument和DOMXPath——这很有效。
$text = $currentNode->xpath("p[not(@class='notes')]//text());