我有一个xml文件,其中sortbits
元素有32个bit
元素作为子元素。如果我使用xpath表达式
/config/portmod/sortbits/bit[*]
它返回一个空列表。
如果我将其更改为
/config/portmod/sortbits/bit[node()]
它会返回一个NodeList
,其中包含所有32个bit
元素。
表达式
/config/portmod/sortbits/bit[last()]
返回最后一个元素。为什么[*]
表达式没有返回任何内容?
答案 0 :(得分:3)
表达式bit[*]
返回具有子元素的位元素。如果没有返回任何内容,可能没有包含子元素的位元素。
表达式bit[node()]
返回具有任何类型子节点的位元素,例如文本节点子节点。假设bit[node()]
返回元素而bit[*]
没有,则这些元素有一个文本节点子节点,但没有元素节点子节点。