2011-12-31 91 views
1

我正在嘗試檢查特定屬性的XML元素,以便我可以不保存重複的元素條目。在XML看起來或多或少是這樣的:按屬性搜索XML元素(C#)

<root> 
     <artist name="Coldplay"> 
     <track name="yellow" artist="Coldplay" url="coldplay.com/yellow" playCount="123" /> 
     <track name="fix you" artist="Coldplay" url="coldplay.com/fixyou" playCount="135" > 
     </artist> 
     //ect. 
    </root> 

谷歌和不同的搜索結果建議是這樣

[@id='foo'] 

,但我不知道是什麼是和這可能是更明顯的原因對你比對我來說我不能「谷歌」這樣的特殊字符的集合沒有得到奇怪的結果。所以,如果任何人都可以提供一個如果檢查聲明的建議,我會非常感激!或C#中特殊字符的名稱或鏈接。

回答

1

這是一個XPath expression - 但就個人而言,我會使用LINQ到XML的搜索自己:

XDocument doc = XDocument.Load("test.xml"); 

var track = doc.Descendants("track") 
       .Where(t => (string) t.Attribute("id") == "foo") 
       .FirstOrDefault(); 

(使用SingleSingleOrDefaultFirst等,如果你想。)

+0

工作太棒了! !非常感謝! – 2012-01-01 03:37:40