gpt4 book ai didi

java - 如何使用 Java 从 XML 节点组中获取文本?

转载 作者:太空宇宙 更新时间:2023-11-04 08:17:20 24 4
gpt4 key购买 nike

以下是 XML 文件 -

<Country>
<Group>
<C>Tokyo</C>
<C>Beijing</C>
<C>Bangkok</C>
</Group>
<Group>
<C>New Delhi</C>
<C>Mumbai</C>
</Group>
<Group>
<C>Colombo</C>
</Group>
</Country>

我想使用 Java 和 XPath 将城市名称保存到文本文件 -下面是无法完成所需操作的 Java 代码。

.....
.....
DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance();
domFactory.setNamespaceAware(true);
DocumentBuilder builder = domFactory.newDocumentBuilder();
Document doc = builder.parse("Continent.xml");
XPath xpath = XPathFactory.newInstance().newXPath();
// XPath Query for showing all nodes value
XPathExpression expr = xpath.compile("//Country/Group");
Object result = expr.evaluate(doc, XPathConstants.NODESET);
NodeList nodes = (NodeList) result;
BufferedWriter out = new BufferedWriter(new FileWriter("Cities.txt"));
Node node;
for (int i = 0; i < nodes.getLength(); i++)
{
node = nodes.item(i);
String city = xpath.evaluate("C",node);
out.write(" " + city + "\r\n");
}
out.close();
.....
.....

有人可以帮助我获得所需的输出吗?

最佳答案

您只能获得第一个城市,因为这就是您所要求的。您的第一个 XPATH 表达式返回所有 Group 节点。您迭代这些并评估相对于每个 Group 的 XPATH C,返回一个城市。

只需将第一个 XPATH 更改为 //Country/Group/C 并完全消除第二个 XPATH - 只需打印第一个 XPATH 返回的每个节点的文本值。

即:

XPathExpression expr = xpath.compile("//Country/Group/C");
...
for (int i = 0; i < nodes.getLength(); i++)
{
node = nodes.item(i);
out.write(" " + node.getTextContent() + "\n");
}

关于java - 如何使用 Java 从 XML 节点组中获取文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10202869/

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