为什么XmlNodeReader读入XML中的结束标记?

时间:2012-11-14 22:29:38

标签: c# xml

我在xml文件中有以下内容:

<MyTag>Inner Text</MyTag>

在我的代码中,我有以下内容来阅读xml文件:

XmlNodeReader nodeReader = new XmlNodeReader(myXmlDoc);
while (nodeReader.Read());
{
    string temp = nodeReader.Name;
}

成功读取xml中的<MyTag>后,它会读入空白,然后转到下一个标记。那是为什么?

编辑:

我也注意到第一个元素正确读入,然而,第二个元素的内部文本没有通过。

1 个答案:

答案 0 :(得分:0)

请注意,你的循环是一个空循环,因为你有';'在while行上意味着你将读者移到最后而不读任何东西。除掉 ';'你应该有更好的结果。这是一个例子:

    static void Main(string[] args)
    {
        XmlDocument myXmlDoc = new XmlDocument();
        myXmlDoc.LoadXml("<MyTag>Inner Text</MyTag>");

        XmlNodeReader nodeReader = new XmlNodeReader(myXmlDoc);
        while (nodeReader.Read())
        {
            Console.WriteLine(
                "Node Type : {0}, Node Name: {1}, Node Value {2}", 
                nodeReader.NodeType, 
                nodeReader.Name, 
                nodeReader.Value);
        }

    }

结果;

Node Type : Element, Node Name: MyTag, Node Value
Node Type : Text, Node Name: , Node Value Inner Text
Node Type : EndElement, Node Name: MyTag, Node Value

按任意键继续。 。

请注意,对于文本节点,名称为空,因为只有元素和属性具有名称。