2013-11-22 39 views
0

我在XML解析XPath查詢在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文檔)

這項工作做得很好,把我的objectElement內對象的值0,其在<id>0</id>標籤內。

好, 現在我必須執行更復雜的操作(和我有沒有很多想法如何做到這一點),這是下列之一:

正如你可以看到我有一個名爲標籤鏈表類包含3個標籤命名對象表示有一些某些屬性3個Java對象(property1property2property3,這將是3個變量到相關的Java objectt)

名單

現在,我必須執行以下操作:爲XML文檔中的每個對象標籤創建一個新的Java對象,並把屬性子標籤值的相關值內的新的Java對象

的問題是,我不知道滾動通過我的 標記(從第一個到最後一個)obecjt標記列表

有些想法?有人可以幫助我做到這一點?

TNX

安德烈

+1

XPath是錯誤的,你想選擇所有的objectList /對象節點與id屬性,然後你可以做一個foreach對他們。例如/ root/objectlist/object [@id] –

+0

確定但是...如何知道標記內的標記的數量? – AndreaNobili

+0

@TonyHopkinson或者我不明白你說什麼我? – AndreaNobili

回答

1

由於@TonyHopkinson指出您使用expath表達/root/objectlist/object[@id] 然後使用selectSingleNode()selectNodes()評判INSEAD。前者返回一個可以迭代的列表。

+0

mmm不,它不工作,因爲它創建了一個節點列表,但此列表具有以下形狀:objectsList:[[Element:],[Element:]]似乎只採用外部標記但不包含其內容:-( – AndreaNobili

+1

內容在那裏,您只需要另一個Xpath表達式,例如,您從列表中的每個表達式執行的「property1」。 –

相關問題