PHP DOM:获取没有后代节点的 Nodevalue
Posted
技术标签:
【中文标题】PHP DOM:获取没有后代节点的 Nodevalue【英文标题】:PHP DOM: Get Nodevalue without descendant nodes 【发布时间】:2011-05-09 23:31:57 【问题描述】:我正在使用 php dom 函数nodeValue
来提取内容的文本。但它也返回后代值:
<example>
<inhalt>123<more>45</more></inhalt>
</example>
根据我的喜好返回inhalt
12345 和 123。我知道在inhalt
中包含文本不是很有意义,也不是很好,但是我如何检查inhalt
中没有文本,例如hasNodeValue
?
【问题讨论】:
如果有第三个数字45,你的要求是什么67? 记住文本也是一个节点。 【参考方案1】:正如 Phil 提到的,文本也是按节点组织的。因此,您的节点 inhalt 有两个子节点:一个文本节点(“123”)和一个名为 more 的元素节点,它还有一个文本节点(“45”)。
如果只是想知道元素之前是否有文本more,测试是否至少有一个元素,然后测试第一个元素是否为文本(应该是DOMText 据我所知)。
如果您想知道,如果“根”处至少有一个元素,请遍历所有子元素并进行相同的测试。
http://www.php.net/manual/en/class.domtext.php
【讨论】:
以上是关于PHP DOM:获取没有后代节点的 Nodevalue的主要内容,如果未能解决你的问题,请参考以下文章