0
第三者のXML文書を読み込んで、任意の日付にEurosの変換レートをGBPに変換する関数を作成しましたが、linqクエリはnull値を返しています。LINQ to XMLを使用してXML値を読み取るC#
XML:
<therate xmlns="http://somecurrencysite.com">
<terms>someValue</terms>
<from>EUR</from>
<amount>1.0</amount>
<timestamp>2001-05-01T06:00:00Z</timestamp>
<to>
<rate>
<currency>GBP</currency>
<dayrate>0.619887217</dayrate>
</rate>
</to>
</therate>
C#が:
var uri = "http://somecurrencysite.com?date=" + date.ToString("yyyy-MM-dd") + "&to=GBP";
decimal rate;
using (var client = new WebClient())
{
client.Credentials = new NetworkCredential("userName", "passWord");
try
{
var source = new MemoryStream(client.DownloadData(uri));
var xRdr = new XmlTextReader(source);
rate = XDocument.Load(xRdr)
.Descendants("rate")
.Select(e => (decimal)e.Element("dayrate"))
.FirstOrDefault();
}
catch (Exception ex)
{
Err.ErrMsg(ex);
throw;
}
}
return rate;
誰かが、私はここに欠けているかを把握
乾杯を助けることができるしてください。あなたは、XML名前空間ホラーを可能にする必要が
多く、迅速な対応、このような簡単な変更のおかげで感謝しています。それ以前は、GetElementsByTagName( "dayrate")[0] .InnerTextを使用していましたが、うまくいきましたが、より洗練されたソリューションを探していました。乾杯 – Arcane92