XmlReader.Name返回一个空值

时间:2015-05-17 22:24:44

标签: c# datagridview

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

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

其中xmlRead是我的XmlReader。

结果为: Beef

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

2 个答案:

答案 0 :(得分:6)

假设您的XML结构如下:

<element>Some Text</element>

首先,XmlReader会首先命中名为XmlNodeType.Element的{​​{1}}类型的节点,以及一个空的element

然后它会点击类型为Value,没有名称,值为XmlNodeType.Text的节点。

然后它会点击类型为"Some Text",名称为XmlNodeType.EndElement且空element的节点。

你试图在没有名字的地方获得名字。要么在读取元素时获取名称,然后读取文本节点,要么在读取元素时获取其名称,然后立即调用Value以获取内部文本节点的内容。

答案 1 :(得分:0)

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