Asp.net mvc 4 XMLReader每隔一个节点跳过一次

Asp.net mvc 4 XMLReader每隔一个节点跳过一次,asp.net-mvc-4,xml-parsing,Asp.net Mvc 4,Xml Parsing,我一直在寻找类似的问题,但每个问题都很容易解决(double reader.Read()方法),但我的问题非常奇怪 以下是我的ASP.NET C#方法: private IEnumerable getXMLData(String inputURI,String elementName) { 列表结果=新列表(); XmlReader=XmlReader.Create(inputURI); Xelem; reader.MoveToContent(); while(reader.Read()) {

我一直在寻找类似的问题,但每个问题都很容易解决(double reader.Read()方法),但我的问题非常奇怪

以下是我的ASP.NET C#方法:

private IEnumerable getXMLData(String inputURI,String elementName)
{
列表结果=新列表();
XmlReader=XmlReader.Create(inputURI);
Xelem;
reader.MoveToContent();
while(reader.Read())
{
if(reader.NodeType==XmlNodeType.Element)
{
if(reader.Name.Equals(elementName))
{
elem=XNode.ReadFrom(reader)作为元素;
if(elem!=null)
{
结果:添加(元素);
}
}
}
}
返回结果;
}
我正在尝试分析以下URI:

顺便说一下,我正在选择elemName=“p”-这些是我的jqplot图表中的值

问题是,这种解析方法保存为每隔一个“p”节点列出一个列表;这个XML文件中有20个“p”节点,但我的解析器只保存10个元素(每隔一个,从第一个开始)


我做错了什么?

一个更整洁的解决方案可能是这样的-

using (var client = new WebClient())
{
    string s = client.DownloadString("http://chartapi.finance.yahoo.com/instrument/1.0/aapl/chartdata;type=quote;range=1m/");
    var xDoc = XDocument.Parse(s);
    var result = xDoc.Descendants("p").ToList();

    return result;

}
用传递到方法中的URL字符串替换URL,使其更通用

using (var client = new WebClient())
{
    string s = client.DownloadString("http://chartapi.finance.yahoo.com/instrument/1.0/aapl/chartdata;type=quote;range=1m/");
    var xDoc = XDocument.Parse(s);
    var result = xDoc.Descendants("p").ToList();

    return result;

}