2012-12-13 147 views
4

我有以下類型的XML: -XPath來選擇與排除元素(與多個子元素)

<tagCategory name="Bike" id="10"> 
    </tagCategory> 
    <tagCategory name="Cars" id="22"> 
    <excludedClass>NonDriver</excludedClass> 
    <excludedClass>BannedFromDriving</excludedClass> 
    </tagCategory> 
    <tagCategory name="PogoStick" id="5"> 
<excludedClass>NoLegs</excludedClass> 
    </tagCategory> 

我想運行查詢,我可以說: -

給我所有的例如: -

  • 給我所有的其中excludedClass不是'NoLegs'應該返回汽車和自行車的tagCategory元素。
  • 給我所有的其中excludedClass不是'BannedFromDriving'的tagCategory元素應該返回Bike和PogoStick。
  • 給我所有的其中excludedClass不是'NonDriver'的tagCategory元素應該返回Bike和PogoStick。

我使用的是當前的XPath,它只處理一個排除類的元素,但其中存在多個元素時,它不會像我期望的那樣過濾項目。

"//tagCategory[excludedClass!='" + classification + "' or not(excludedClass)]"

沒有人有任何想法如何,我可以修改我的XPath來給我我需要什麼?

真的很欣賞任何想法。

親切的問候,

菲爾。

+0

的XPath的什麼版本? –

+0

我正在使用.NET 4,因此無論在那裏? –

回答

0

嘗試使用類似:

//tagCategory[not(excludedClass='NonDriver')] 

例如:

//tagCategory[not(excludedClass='" + classification + "')] 
+0

大衛,事情是,我只能通過一個排除,即我知道的一個,我不知道其他人。有沒有辦法做到這一點? –

+0

@PhilWinstanley - 對不起......我誤解了這個問題。請參閱我的編輯,看看它是否適合你。 –

+0

完美 - 謝謝你,我也必須彈出或不彈出(排除類),以滿足它不存在的項目:) –