XmlReader.Name 返回空值

3

我正在从外部服务器读取数据。数据可以成功获取并且我可以设置所有文本值,但是当我尝试读取标签名称时,它不起作用。 我的总体目标是在一个列中填充标记名称,另一个列中填充标记值的dataGridView。再次强调,我有标记值但没有标记名称。 问题代码:

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

这里的xmlRead是我的XmlReader。

结果为:Beef

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

2个回答

10

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

<element>Some Text</element>

首先,XmlReader会先读取一个类型为XmlNodeType.Element、名称为element且没有值的空节点。

然后,它会读取一个类型为XmlNodeType.Text、没有名称且其值为"Some Text"的节点。

最后,它会读取一个类型为XmlNodeType.EndElement、名称为element且没有值的空节点。

你试图在没有名称的位置获取名称。要么在读取元素时获取名称,之后再读取文本节点;或者在读取元素并获取其名称后立即调用ReadElementContentAsString()来获取内部文本节点的内容。


0
一个文本节点没有名称,所以xmlRead.Name永远不会返回任何一个。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接