2013-07-10 46 views
0

假設我有以下XML獲取部分節點XPATH

<a> 
    <b></b> 
    <c></c> 
    <d></d> 
    <e></e> 
</a> 

如果我想要得到的一個一個所有的孩子除了d。對於這一點,我會用以下內容:

/a/*[not(self::d)] 

然而,這將返回bÇ,並ē在三個不同的節點。我正在尋找的只是一個節點,包含b,ce,不包括d。這將是類似於以下僞代碼:

/a/* and <do not include /a/d please> 

這可能嗎?

謝謝。

+0

在XPath 1.0中不可能。對於版本2,我不知道。 – choroba

回答

2

XPath - 無論版本是1.0,2.0還是3.0 - 只能查詢子樹並且無法修改(包括刪除)或構建新元素。

您將不得不爲此目的使用XQuery或XSLT,或者修改查詢語言以外的文檔,並僅使用XPath選擇結果子樹,之後使用另一個XPath選擇不想要的節點並將它們從這是您使用的編程語言的結果。