0
我正在使用XMLSOCCER API生成XML數據響應。高效的XML解析
他們有一個.NET庫來處理他們的數據。
var x = Client.GetAllLeagues(ApiKey);
XmlNodeList list = x.ChildNodes;
GetAllLeagues(string ApiKey)
返回XMLNode其是響應的根:
<?xml version="1.0" encoding="UTF-8"?>
<XMLSOCCER.COM>
<League>
<Id>1</Id>
<Name>English Premier League</Name>
<Country>England</Country>
<Historical_Data>Yes</Historical_Data>
<Fixtures>Yes</Fixtures>
<Livescore>Yes</Livescore>
<NumberOfMatches>5640</NumberOfMatches>
<LatestMatch>2015-04-13T21:00:00+00:00</LatestMatch>
</League>
<League>
<Id>2</Id>
<Name>English League Championship</Name>
<Country>England</Country>
<Historical_Data>Yes</Historical_Data>
<Fixtures>Yes</Fixtures>
<Livescore>Yes</Livescore>
<NumberOfMatches>8335</NumberOfMatches>
<LatestMatch>2015-04-17T20:45:00+00:00</LatestMatch>
</League>
</XMLSOCCER.COM>
我能到節點和它們的值與下列:
for (var i = 0; i < list.Count; i++)
{
var children = list.Item(i).ChildNodes;
for(var j=0; j < children.Count; j++){
Console.WriteLine(String.Format("Key:{0} Value:{1}", children.Item(j).Name, children.Item(j).InnerText));
}
}
I」的問題面對的是這種感覺效率很低。 如果我可以使用XmlReader
它可能使它更容易使用。但由於XmlReader.Create();
期望一個Stream,我不能使用API返回的XmlNode。
我想我可以用從下面的例子: https://msdn.microsoft.com/en-us/library/cc189056(v=vs.95).aspx
你如何分析數據?
停止使用其.NET庫並自己調用API。從API調用返回的XML字符串中創建一個'XDocument'。 – CoderDennis
等待...如果它們的API重新調用一個'XmlNode',這意味着XML已經被解析了......爲什麼要將它重新填充到一個'XmlReader'中來第二次解析呢? –
「我喜歡'XmlReader' over'XDocument' /'XmlDocument'」類型的問題感覺完全是個人喜好。我不確定你希望從SO中得到什麼樣的輸入以幫助你決定你更喜歡什麼(因爲根據你提供的信息,似乎沒有什麼特別的理由要選擇另一個)。 –