0

我有一个这种形式的 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/ 没有子节点,以便我应用特殊格式?

4

2 回答 2

1

我怎么知道每个节点的 item/children/ 没有子节点,以便我应用特殊格式?

这个 XPath 表达式

//item/children[not(node())]

选择childrenXML 文档中的任何元素,它是 an 的item子节点,并且本身没有子节点。

要选择//item/children本身有子节点的元素,请使用

//item/children[node()]
于 2012-09-13T15:26:05.543 回答
0

XPath 表达式children[count(node())>0]在给定的上下文中返回children不为空的元素。

要让那些是空的,请将 更改>=

于 2012-09-13T15:25:31.070 回答