2011-11-11 60 views
1

有沒有辦法檢查爲什麼xPathNavigator.evaluate()調用不返回節點?從xpathnavigator獲取結果評估

例如給出下面的XML文檔:

<Vehicles> 
    <car> 
     <wheels>4</wheels> 
     <seats>5</seats> 
    </car> 
</Vehicles> 

和下面的XPath表達式:

//Vehicles[((car[wheels = 4 and seats = 2]))] 

我想某種指示的該未被選擇的節點,因爲該條款的「座位= 2「不是因爲車輪的數量。

這是有可能的嗎?

回答

0

以下XPath表達式:

//Vehicles[((car[wheels = 4 and seats = 2]))] 

我想某種指示該節點沒有被選中 因爲該條的「座位= 2」不是因爲輪的數量的。

這是有可能的嗎?

,如果你使用這些表達式這將是可能的:

//Vehicles[car[wheels = 4]] 

這裏如果結果不爲空(或XmlNode的空集),那麼你就會知道,如果下一個表達式:

//Vehicles[car[wheels = 4][seats = 2]] 

選擇0節點,那麼這樣做的原因是,有car的孩子,有4個輪子,但他們都不恰好有2個席位。

+0

我無法自己寫xPath查詢來測試它,因爲我想測試的xPath查詢是在運行時生成的。除非有辦法分隔「where」子句 – user1041808

+0

@ user1041808:您應該編輯問題並解釋。如果您沒有對XPath表達式的運行時生成進行控制,那麼幾乎不可能處理XPath表達式並將其從中取出 - 除非您自己編寫自己的XPath分析器。 –

1

「爲什麼」不是您可以自動執行的問題。 XPath表達式不會選擇任何節點有無數的原因。如果節點位於錯誤的名稱空間中怎麼辦?如果你寫了「//車輛」而不是「//車輛」?

你可以做的最好的是定義你想檢查和測試的條件種類。