xml解析xpath php

时间:2012-09-13 15:18:36

标签: php xml xpath

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

2 个答案:

答案 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元素。

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