2012-06-22 123 views
1

背景節點 - Visual Studio 2010中,C#.NET框架4.0的應用程序XPath來選擇與屬性值和子節點的值

我有一個接收基於XML和關閉該XML一個網站,我需要觸發額外的處理過程。

我收到以下XML

<Event xmlns="http://www.mysite.com" et='a'> 
<audit> 
    <cb>foo</cb> 
</audit> 
</Event> 

我一直在使用以下XPath,看看文檔進行額外的處理相匹配。(檢查是否(我已縮短下來到最小XML)我收到任何「事件」節點)。

 //std:Event[@et='a'] 

在哪裏我一直在努力的是,我需要找到所有的事件節點,其中等屬性是「a」和審計/ CB節點有「富」的值

這是我在哪裏掙扎...任何人都可以幫我嗎?

+0

您*有*使用XPath嗎?我知道有很多人發誓,但我會用自己的LINQ來XML。特別是,它使名稱空間處理更簡單。 –

+0

xPath在「路由」定義中獲得設置,因此針對不同的處理有不同的xPath。切換到LINQ to XML會很有趣,但是需要時間來更新和轉換所有內容。 – adondero

回答

3

不知道C#的和.NET,但在純XPath語法,我相信這將是:在

//Event[@et='a']/audit[cb='foo']/.. 

退房XPath語法:http://www.w3schools.com/XPath/xpath_syntax.asp

+0

這找到'audit'節點,而不是'Event'節點。 – BoltClock

+0

@BoltClock你是對的....編輯。沒有時間去測試它。 – Nicholas

+0

謝謝...這幫了我很多..我有很多要了解xPath語法。我不得不修改一點點以包含名稱空間// std:Event [@ et ='a']/std:audit [std:cb ='foo'] – adondero

0

不是.NET用戶自己,但這種嘗試:

//Event[@et='a' and audit/cb = 'foo'] 
相關問題