2012-01-09 80 views
0

我一直在與一些的LINQ to XML玩耍,和我有解析http://www.nationalbanken.dk/dndk/valuta.nsf/valuta-hist.xml,這是表示在過去五天匯率列表的一些問題,丹麥。獲得具有特定屬性的所有元素在LINQ to XML

我試圖讓所有的「立方體」這裏的屬性的「貨幣」是等於一個特定的值。

到現在爲止,我有以下幾點:

Stream stream = e.Result; 
     XDocument doc = XDocument.Load(stream); 
     var _rd = (from x in doc.Descendants("Cube") 
        where x.Attribute("currency").Value.Equals(SelectedCurrency.Instance.CurrencyCode) 
        select x).ToList(); 

Ofcause這種問題已經回答過很多次了,但我不能,如果它有什麼做的複製圖元素名稱,導致我得到的是一個空白的null。

+0

[使用XDocument查找元素的屬性](http://stackoverflow.com/questions/2678251/find-elements-by-attribute-using-xdocument) – 2012-01-09 16:31:29

回答

3

你的問題是,你不使用命名空間解析XML。

XNamespace ns="http://www.ecb.int/vocabulary/2002-08-01/eurofxref"; 
var _rd = (from x in doc.Descendants(ns+"Cube") 
      where x.Attribute("currency").Value.Equals(SelectedCurrency.Instance.CurrencyCode) 
      select x).ToList(); 

沿着這些線應該工作。

+0

那麼,這是有道理的。謝謝......顯然,我得到一個NullReference當我嘗試做你的建議,所以我加了'。凡(I => i.Attribute(「貨幣」)!= NULL)',然後我又什麼也沒得到,但不是例外...... – Morten 2012-01-09 16:53:02

+0

其實,它確實有效。只是我搞砸了另一個價值。非常感謝...標記爲答案... – Morten 2012-01-09 17:19:02

相關問題