JavaXPath返回单个结果而不是节点集
我正在尝试用Java创建一个XPath表达式(8,默认XPath实现)。我正在做以下工作:JavaXPath返回单个结果而不是节点集,java,xml,dom,xpath,Java,Xml,Dom,Xpath,我正在尝试用Java创建一个XPath表达式(8,默认XPath实现)。我正在做以下工作: Object res = xpath.evaluate("(//*[local-name()='PartyId'])", requestDom, XPathConstants.NODESET); 我在同一级别的文档中有多个PartyId节点,因为它的父节点是重复的。我得到了结果,但只有一个节点。(第一) 旁白:如果我在表达式末尾写[$k],比如[1]或[2],我得到了我的元素,但我需要所有元素:( 但是
Object res = xpath.evaluate("(//*[local-name()='PartyId'])", requestDom, XPathConstants.NODESET);
我在同一级别的文档中有多个PartyId节点,因为它的父节点是重复的。我得到了结果,但只有一个节点。(第一)
旁白:如果我在表达式末尾写[$k],比如[1]或[2],我得到了我的元素,但我需要所有元素:(
但是,如果我在测试同一个XPath,例如在,我会得到多个结果,这是预期的结果。
有什么想法吗
p、 我试图将Saxon放在类路径上,但它完全破坏了我的应用程序(SpringBootWS)
非常感谢
更新
我未能正确检查结果,结果完全正确。我猜您在处理结果
节点列表时出错。请尝试以下方法:
NodeList results = (NodeList) xpath.evaluate(..);
for (int i = 0; i < nodelist.getLength(); i++) {
Node node = (Node) nodelist.item(i);
...
}
nodelistresults=(NodeList)xpath.evaluate(…);
for(int i=0;i
您能展示告诉您只得到一个节点的java代码吗?以及您的XML文件的一些示例。@LarsH我用调试器工具检查了输出,但可能我误解了我看到的内容-现在检查。将提供更新