我有一个这种形式的xml文档:
<root>
<item title="x">
<children/>
</item>
<item title="y">
<children>
<item title="y1">
<children/>
</item>
<item title="y1">
<children>
<item title="y1.1">
<children/>
</item>
</children>
</item>
</children>
</item>
</root>
等等。通常我会递归地解析每个节点的文件,看看节点是否有孩子做一些额外的html格式。这个模式的问题是,即使它是单个条目(例如,单个章节的标题)或空,也会出现子项。
我正在使用php和xpath,我怎么知道每个节点的item / children /都没有子节点,所以我会应用特殊格式?
答案 0 :(得分:1)
我怎么知道每个节点的item / children /都没有子节点 我会应用特殊格式?
此XPath表达式:
//item/children[not(node())]
选择XML文档中的任何children
元素,该元素是item
的子元素,并且本身没有子节点。
要选择自己拥有子节点的//item/children
元素,请使用:
//item/children[node()]
答案 1 :(得分:0)
XPath表达式children[count(node())>0]
在给定的上下文中返回非空的children
元素。
要让那些(是)为空的,请将>
更改为=
。