用于查找具有给定名称的所有节点(例如“// nodeName”)的标准xpath语法失败

时间:2012-07-28 06:10:47

标签: java xml xpath

我已经加载了一个XML文档,我正在尝试使用xpath查找名为“ CodeList ”的所有节点。无论出于何种原因,xpath表达式//CodeList提供0个节点,但xpath表达式/.//CodeList为我提供了正确标识的节点列表。阅读互联网上的各种教程,//CodeList应该是正确的语法来做我想要的。

我不确定为什么会这样。 xpath表达式./.返回相同的节点,该节点似乎是文档(getNodeName返回“#document”)。

有人建议我的类路径中的库可能是问题的根源。

到目前为止,唯一依赖于XML的XML库是:

  • xmlbeans-2.3.0
  • xml-apis-1.3.04
  • xalan-2.7.1
  • xercesImpl-2.9.1

2 个答案:

答案 0 :(得分:1)

/CodeList/.//CodeList都应该返回完全相同的结果。如果他们不这样做,那就是一个错误。两者都应该返回没有命名空间的所有CodeList元素。如果您的元素都在(默认)命名空间中,则两个表达式都不会返回任何内容。

答案 1 :(得分:0)

尝试

"//CodeList/*/text()"

你将拥有行

中的所有子节点