我正在使用 php dom 函数 nodeValue 来提取内容的文本。但它也返回后代值:
<example>
<inhalt>123<more>45</more></inhalt>
</example>
按我的喜好返回 inhalt 12345 和 123。我知道在 inhalt 中包含文本是没有意义的,也不是很好,但是我如何检查 inhalt 中没有文本,例如 hasNodeValue ?
最佳答案
正如 Phil 所提到的,文本也是按节点组织的。因此,您的节点 inhalt 有两个子节点:一个文本节点 ("123") 和一个名为 more 的元素节点,它还有一个文本节点 ("45")。
如果你只是想知道,元素之前是否有文本more,测试是否至少有一个元素,然后测试第一个元素是否为文本(应该是DOMText 据我所知)。
如果您想知道,如果“根”处至少有一个元素,则遍历所有子元素并进行相同的测试。
关于PHP DOM : Get Nodevalue without descendant nodes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4180296/