在java中解析Xml文件以获取与给定标签值匹配的元素
我有一个如下的 xml:
<root>
<outer>
<name>abc</name>
<age>20</age>
</outer>
<outer>
<name>def</name>
<age>30</age>
</outer>
<outer>
<name>ghi</name>
<age>40</age>
</outer>
</root>
我想获取给定名称标签值的年龄标签值?
一种方法是我可以通过使用 Document 接口解析此 xml 来准备姓名到年龄的映射。
但是有没有任何API可以让我调用Document接口,在其中我可以说获取名称为say,ghi的元素,然后我可以迭代所有属性以获取年龄属性或任何其他简单的方法来获取名称值为的年龄,说吉?
I have an xml as follow:
<root>
<outer>
<name>abc</name>
<age>20</age>
</outer>
<outer>
<name>def</name>
<age>30</age>
</outer>
<outer>
<name>ghi</name>
<age>40</age>
</outer>
</root>
I want to fetch the value of age tag for a given value of name tag?
One way is that I can prepare a map of name to age by parsing this xml using Document interface.
But is there any api that I can just call for Document interface in which I can say fetch element where name is say,ghi, and then i can iterate all atributes to get age attribute or any other simple way to get age where name value is,say ghi?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
结果java确实在XPath评估器中提供docs.oracle.com/en/java/javase/17/docs/api/java.xml/javax/xml/xpath/package-summary.html" rel="nofollow noreferrer">
javax.xml.xpath
包,这使得这变得很简单:示例使用:
Turns out java does come with an XPath evaluator in the
javax.xml.xpath
package, which makes this trivial:Example use:
XPath 是一个非常富有表现力的 API,可用于选择元素。
这篇文章 https://www.baeldung.com/java-xpath 提供了非常好的概述以及如何在 Java 中应用 XPath 的说明。
为您的 XPath 调整他们的代码示例之一:
XPath is a very expressive API that can be used to select the elements.
This article https://www.baeldung.com/java-xpath provides a pretty good overview and explanation of how to apply an XPath in Java.
Adjusting one of their code samples for your XPath: