0

编辑:是的,我的 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 个元素?

4

1 回答 1

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
于 2013-01-16T17:38:58.720 回答