2012-12-06 58 views
2

的XPath:給定的XML塊選擇父母和子女過濾

<parent> 
    <child id="1" /> 
    <child id="2" /> 
</parent> 

我會如何使用XPath基於

<parent> 
    <child id="1" /> 
</parent> 

返回一個過濾器id="1"(不則firstChild)。

我不是在尋找一個xslt或xquery解決方案。

非常感謝。

回答

2

只有XPath,你不能。

XPath允許您從XML文檔樹中查詢(選擇)節點,但無法修改樹或創建新節點。因此,如果選擇原始<parent>節點,它將有兩個<child>孩子,並且不能更改該孩子。爲了只有一個子女獲得<parent>,您必須修改原始<parent>以刪除其他子女,或創建新的<parent>

您可以使用XSLT來做到這一點,就像您提到的那樣;或許多其他XML樹形技術。如果您告訴我們您正在構建的平臺類型,我們可以推薦與您的平臺最相關的平臺。

+1

謝謝LarsH,我很害怕這個。我有一個設置,我可以將xpath傳遞給服務並獲得響應。如果我能夠獲得過濾收集的父項和選定的子項,它將允許我將工作交給基於xpath的服務。 – JonSG