使用 XmlReader 时,属性返回 False!为什么

本文关键字:False 为什么 返回 属性 XmlReader 使用 | 更新日期: 2023-09-27 18:36:42

这是我的XML文件...

<application>
  <name>My Application</name>
  <ou/>
  <area/>
  <created time="na"/>
  <id closed="no"/>
  <description>My App Description</description>
  <version type="beta">1.0</version>
  <modified>02/24/2016</modified>
  <files>
    <file>
      <name>my_app.exe</name>
      <size type="bytes" complete="yes" updated="no">225684</size>
      <description>Main GUI for Application.</description>
      <version>1.5</version>
      <modified>02/24/2016</modified>
    </file>
    <file>
      <name>testfile.dll</name>
      <size type="bytes" complete="yes" updated="no">1024</size>
      <description>Support DLL for Application.</description>
      <version>1.1</version>
      <modified>02/23/2016</modified>
    </file>
  </files>
</application>

我用它来读取我的XML文件...

using (XmlReader reader = XmlReader.Create("my_xml_file.xml"))
{
  while (!reader.EOF)
  {
    switch (reader.NodeType)
    {
      case XmlNodeType.Element:
        if (reader.HasValue)
          Debug.WriteLine("Node Value:" + reader.ReadString());
        break;
    }
  }
}

我不知道为什么,但由于某种原因,我的reader.HasValue财产总是FALSE。 我认为当该节点上有值时,该属性应该TRUE。如果我每次都打电话给reader.ReadString(),它会让读者进步并搞砸我想要做的事情。 我错了吗?

使用 XmlReader 时,属性返回 False!为什么

元素本身没有值(在你的意思中 - 它不能) - 元素中的"文本"节点有。

      case XmlNodeType.Text:
      Console.Write(reader.Value);
      break;