gpt4 book ai didi

java - 如何在 Java 中执行类型安全的 Xpath 查询?

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

我目前正在使用 JDOM 进行一些简单的 XML 解析,似乎没有什么是类型安全的——我在使用内置 Java DOM 解析器时遇到了类似的问题,只是需要处理更多的 API。

例如,XPath.selectNodes 接受一个Object 作为它的参数并返回一个原始列表,有点Java 1.1 的感觉

是否有用于 Java 的通用化 XML 和 XPath 库,或者是否有某种原因导致无法以类型安全的方式执行 XPath 查询?

最佳答案

如果您熟悉 HTML 上的 CSS 选择器,那么了解 Jsoup 可能会有所帮助。也支持 XML。


更新:好吧,这显然是一个非常有争议的答案。然而,当您只想选择节点值时,它最终可能会比 Xpath 更简单、更简洁。 Jsoup API 非常灵活。让我们举一个更具体的例子。假设您有一个如下所示的 XML 文件:

<?xml version="1.0" encoding="UTF-8"?>
<persons>
<person id="1">
<name>John Doe</name>
<age>30</age>
<address>
<street>Main street 1</street>
<city>Los Angeles</city>
</address>
</person>
<person id="2">
<name>Jane Doe</name>
<age>40</age>
<address>
<street>Park Avenue 1</street>
<city>New York</city>
</address>
</person>
</persons>

然后你可以像下面这样遍历它:

Document document = Jsoup.parse(new File("/persons.xml"), "UTF-8");

Element person2 = document.select("person[id=2]").first();
System.out.println(person2.select("name").text());

Elements streets = document.select("street");
for (Element street : streets) {
System.out.println(street.text());
}

哪些输出

Jane DoeMain street 1Park Avenue 1

更新 2:从 2012 年 3 月发布的 Jsoup 1.6.2 开始,Jsoup API 正式支持 XML 解析。

关于java - 如何在 Java 中执行类型安全的 Xpath 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3847635/

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