2013-02-15 110 views
1

我有一個XML的結構是這樣的:的XPath查找ID屬性,並獲得屬性父內容

<document> 
<body> 
<section> 
<title>something</title> 
<subtitle>Something again</subtitle> 
<section> 
<p xml:id="1234">Some text</p> 
</section> 
</section> 
<section> 
<title>something2</title> 
<subtitle>Something again2</subtitle> 
<section> 
<p xml:id="12345678">Some text2</p> 
</section> 
</section> 
</body> 
</document> 

我想是找到搜索的屬性的XML內容:含有12345678,一旦ID發現,獲得以前的兄弟(小標題)內容。這可能與xpath?我有這樣的:

//p[contains(@xml:id,'12345678')]/preceding-sibling::subtitle 
+0

需要注意的是XML:ID屬性不能以數字開頭。 – choroba 2013-02-15 10:50:12

回答

0

如果我理解正確的崗位,對於你已經把具體的查詢,預期的答案是Something Again2。您可以使用下面的查詢做到這一點:

修訂作爲文檔架構更改

//section[section/p[@xml:id="12345678"]]/subtitle 
+0

感謝您的回覆。雖然沒有工作,但... – user2075124 2013-02-15 10:59:46

+0

@ user2075124:它在我的最後工作正常。我不確定你是如何測試的。我用Notepad ++中的兩個XPath測試程序Editix和XPatherizer嘗試過,它工作正常。 – Kangkan 2013-02-15 12:30:54

+0

對不起。上面的結構缺少一個級別。我現在編輯它。有關如何解決這個問題的任何建議? – user2075124 2013-02-15 12:44:25