XmlDocument.GetElementsByTagName()无法读取足够的数据

时间:2013-01-16 16:45:51

标签: c# xml-parsing

编辑:是的,看起来我的Watch窗口滞后了。它继续呈现以前的结果。有人遇到过这种情况吗?

编辑:当你问我设置断点的位置时,它位于最后一行之后。

这是我的C#代码

XmlDocument document = new XmlDocument();
document.Load(fileName);
id = document.GetElementsByTagName("id");

这是我的XML文件

<StudentList>
  <id>1</id>  
  <id>3</id>  
  <id>7</id>  
  <id>9</id>
  <id>8</id>
  <id>Invalid</id>  
</StudentList>

当我尝试调试时,id.Count等于4,而我认为它应该是6。

为什么调试器说只有4个元素?

1 个答案:

答案 0 :(得分:0)

如果您的xml文件看起来如上所示,则应该id.Count等于6.

让我们尝试这样做:

  XmlDocument document = new XmlDocument();
  document.LoadXml(@"<StudentList>
                            <id>1</id>  
                            <id>3</id>  
                            <id>7</id>  
                            <id>9</id>
                            <id>8</id>
                            <id>Invalid</id>  
                        </StudentList>"); 

   id = document.GetElementsByTagName("id");
   Console.WriteLine(id.Count);

在控制台中,您可以看到“6”。

所以我认为您在代码之前设置了id的值。 值4来自之前的操作。

在此行上设置断点:

id = document.GetElementsByTagName("id");

在立即窗口中,您可以输入id,您将得到以下结果:

id
{System.Xml.XmlElementList}
    [System.Xml.XmlElementList]: {System.Xml.XmlElementList}
    Count: 4

接下来按F10,将执行该行中的代码,您必须再次键入立即窗口ID,您将获得:

id
{System.Xml.XmlElementList}
    [System.Xml.XmlElementList]: {System.Xml.XmlElementList}
    Count: 6