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中得到什么样的输入以帮助你决定你更喜欢什么(因为根据你提供的信息,似乎没有什么特别的理由要选择另一个)。 –