【发布时间】:2013-12-07 14:00:48
【问题描述】:
我在 XML Parsing 和 Java 中的 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 将 3 个变量放入相关的 Java 对象中)
现在我必须执行以下操作:为 XML 文档中的每个对象标签创建一个新的 Java 对象,并将属性子标签值放入新 Java 对象的相关值中
问题是我不知道滚动浏览我内部的 obecjt 标签列表 标签(从第一个到最后一个)
有什么想法吗?有人可以帮我做吗?
Tnx
安德烈亚
【问题讨论】:
-
XPath 是错误的,您想选择所有具有 id 属性的 objectList/object 节点,然后您可以对它们进行 foreach。例如/root/objectlist/object[@id]
-
好的,但是...我如何知道
标签内的 -
@TonyHopkinson 或者我不明白你在说什么?
标签: java xml xpath xml-parsing jdom