gpt4 book ai didi

Java XML 解析/查询

转载 作者:数据小太阳 更新时间:2023-10-29 02:24:33 26 4
gpt4 key购买 nike

我有这样的 XML 结构,当我使用 NodeList nList = doc.getElementsByTagName("stock");它返回我 3 只股票,2 个主要股票标签和一个在子股票下的股票。我只想获取上层的两个库存,而忽略所有在 substock 标签下的库存。

在 Java 中是否可以在 C# 中进行类似于 LINQ 查询的操作,比如仅返回名称等于“Sony”的元素。

谢谢!

<city>
<stock>
<name>Sony</name>
</stock>
<stock>
<name>Panasonic</name>
<substocks>
<stock>
<name>Panasonic Shop 2</name>
</stock>
</substocks>
</stock>
</city>

最佳答案

我推荐你使用XPathjavax.xml.xpath包裹:

final InputStream is = new FileInputStream('your.xml');

final DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
final DocumentBuilder builder = factory.newDocumentBuilder();
final Document doc = builder.parse(is);
final XPathFactory xPathfactory = XPathFactory.newInstance();
final XPath xpath = xPathfactory.newXPath();
final XPathExpression expr = xpath.compile("/city/stock/name[text()='Sony']");

然后:

final NodeList nl = (NodeList) expr.evaluate(doc, XPathConstants.NODESET);

关于Java XML 解析/查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9758944/

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