gpt4 book ai didi

xml - XPath - 根据相同条件从不同路径检索多个值

转载 作者:行者123 更新时间:2023-12-03 14:38:38 25 4
gpt4 key购买 nike

这是我的 XML

<root>
<entry id="1">
<value name="ID">11</value>
<value name="ENABLE">0</value>
<value name="NAME">USER1</value>
</entry>
<entry id="2">
<value name="ID">11</value>
<value name="ENABLE">0</value>
<value name="NAME">USER2</value>
</entry>
<entry id="3">
<value name="ID">12</value>
<value name="ENABLE">0</value>
<value name="NAME">USER1</value>
</entry>
</root>

我需要一个 XPath 查询来检索 id11 的所有名称。

我试过:

String xpath = "/root/entry/value[@name=ID/text()='11']/value[@name='NAME']";
String xpath = "/root/entry/value[@name=ID/text()='11']/NAME";

谁能告诉我我的查询有什么问题?

编辑:

预期输出:

USER1
USER2

这两个都有 ID = 11

最佳答案

这将是正确的路径:

/root/entry[value[@name = 'ID'] = 11]/value[@name = 'NAME']

要检索节点列表,您需要使用带有 returnType 参数的 xPath.evaluate() 版本:

InputSource document = new InputSource(new FileInputStream("user1.xml"));
String xpath = "/root/entry[value[@name = 'ID'] = 11]/value[@name = 'NAME']";
NodeSet result = (NodeSet)xPath.evaluate(xpath, document, XPathConstants.NODESET);
for(int index = 0; index < result.getLength(); index ++) {
Node node = result.item(index);
String name = node.getNodeValue();
}

关于xml - XPath - 根据相同条件从不同路径检索多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14513923/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com