如何使用 DOM 和 XALAN 处理器在 Java 中实现同级节点(XPATH 表达式)关系

How to implement siblings nodes (XPATH expressions) relation in Java using DOM and XALAN processor

提问人:sunil 提问时间:9/5/2022 更新时间:9/5/2022 访问量:46

问:

大家好,我正在用 Java 开发一个程序,以使用 XPATH 读取同级节点(相同级别的元素)的 XML

我无法在Java中实现以下XPATH表达式:

//*:root/*:child1[.='child_value']/following-sibling::*:child2[*:subelement]/*:subelement3/*:subelement4/following-sibling::*:anyelement

有人可以提出任何解决方案吗?

Java DOM XPath Xalan

评论


答:

1赞 Michael Kay 9/5/2022 #1

该构造需要 XPath 2.0,而 Xalan 不支持 XPath 2.0。最简单的解决方案是改用撒克逊语。*:root

在 XPath 1.0 中,仅通过本地名称选择元素的方法对于像这样包含 7 个此类选择的表达式来说有点麻烦。*[local-name()='root']

评论

0赞 sunil 9/6/2022
我很欣赏你建议的答案迈克尔。但是对于“following-sibling::child2”,我们如何用 java 编写
1赞 Michael Kay 9/6/2022
你的意思是,你怎么能用XPath 1.0写它?写。following-sibling::*[local-name()='child2']
0赞 sunil 9/7/2022
非常感谢迈克尔的回答。实际上我正在尝试 *[following-sibling='child2'] 所以我遇到了错误。但现在我得到了答案,很抱歉浪费了你的时间
1赞 Michael Kay 9/7/2022
如果你尝试过,那么我担心你试图通过反复试验来学习这门语言,这将是一个痛苦的过程。你需要通过做一些阅读来了解它是如何结合在一起的,而不仅仅是试图复制例子。following-sibling='child2'