我对 Java 中的 XML 解析 和 XPATH 查询 绝对是新手,但遇到以下问题:
我有以下 XML 文件,我必须对其进行一些查询:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<status>
<id>0</id>
<message />
</status>
<objectList>
<object id="obj1">
<property1>value</property1>
<property2>value</property2>
<property3 />
</object>
<object id="obj2 ">
<property1>value</sproperty1>
<property2>value</property2>
<property3>value</property3>
</object>
<object id="obj3 ">
<property1>value</sproperty1>
<property2>value</property2>
<property3>value</property3>
</object>
</objectList>
</root>
我要做的第一件事是获取唯一的 <id>0</id>
内的值 标签,我使用以下 XPATH 查询来完成此操作(并且此查询运行良好):
XPath xPath = XPath.newInstance("s:Envelope/s:Body");
xPath.addNamespace("s", "http://schemas.xmlsoap.org/soap/envelope/");
org.jdom.Element objectElement = (Element) xPath.selectSingleNode(documentXML);
System.out.println("objectElement: " + objectElement);
(其中 documentXML 包含先前的 XML 文档)
这工作得很好,并将 <id>0</id>
内的值 0 放入我的 objectElement 对象中。 标签。
好的, 现在我必须执行一项更复杂的操作(并且我对如何操作没有太多想法),如下所示:
正如你所看到的,我有一个名为 objectList 的标签,其中包含 3 个名为 object 的标签,它们代表具有一些属性的 3 个 Java 对象的列表 (property1 、property2 和 property3 这将是相关 Java 对象中的 3 个变量)
现在我必须执行以下操作:为 XML 文档中的每个对象标记创建一个新的 Java 对象,并将属性子标记值放入新 Java 对象中的相关值中
问题是我不知道如何滚动浏览我的 obecjt 标签列表 标签(从第一个到最后一个)
有什么想法吗?有人可以帮我做吗?
Tnx
安德里亚
最佳答案
正如 @TonyHopkinson 指出的,您使用 expath 表达式 /root/objectlist/object[@id]
然后使用 selectNodes()
方法代替 selectSingleNode()
。前者返回一个可以迭代的列表。
关于java - 如何使用 XPATH 将标签列表从第一个滚动到最后一个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20149106/