2012-01-09 33 views
0

linqをXMLに変換していますが、最後の5日間の通貨レートを示すリストであるhttp://www.nationalbanken.dk/dndk/valuta.nsf/valuta-hist.xmlを解析するときに問題が発生します。デンマーク語。LINQからXMLへの特定の属性を持つすべての要素を取得する

ここですべての「キューブ」を取得しようとしていますが、属性「通貨」は特定の値に等しいです。

は今まで、私は次があります質問のこの種のOfcause

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(); 

前に多くの時間に答えてきたが、私はそれはの重複とは何かを持っている場合のことは理解できません要素名、私が得るすべての原因は空のヌルです。

+0

[XDocumentを使用した属性による要素の検索](0120-998-941)を参照してください。 –

答えて

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を取得するので、 '.Ihere(i => i.Attribute(" currency ")!= null)'を追加してから、例外ではありません... – Morten

+0

実際に、それは働いた。ちょうど私は別の価値を台無しにしました。どうもありがとうございました...答えとしてマークされています... – Morten

関連する問題