XmlReader.Name返回一个空值

本文关键字:一个 空值 Name 返回 XmlReader | 更新日期: 2023-09-27 17:49:27

我正在读取来自外部服务器的数据。数据输入很好,我可以设置所有的文本值,但当我试图读取tagname时,它不起作用。我的总体目标是在一列中填充标记名,在另一列中填充标记值的dataGridView。重申一下,我有标记值,但没有标记名。问题代码:

if (xmlRead.NodeType == XmlNodeType.Text){
   Console.WriteLine(xmlRead.Name + " : " + xmlRead.Value);
}

其中xmlRead是我的XmlReader。

结果是: Beef

示例数据格式为<type>Beef</type>

XmlReader.Name返回一个空值

假设您有一个XML结构如下:

<element>Some Text</element>

首先,XmlReader将首先命中类型为XmlNodeType.Element、名称为element和空Value的节点。

然后它将击中一个类型为XmlNodeType.Text,没有名称,值为"Some Text"的节点。

然后它将击中一个类型为XmlNodeType.EndElement,名称为element和空Value的节点。

您试图在没有名称的位置获取名称。要么在读取元素时获取名称,然后再读取文本节点,要么在读取元素时获取其名称,然后立即调用ReadElementContentAsString()以获取内部文本节点的内容。

Text节点没有名称,因此xmlRead.Name将永远不会返回名称。