0

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

<MyTag>Inner Text</MyTag>

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

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

在成功读取<MyTag>xml 后,它会读取一个空白,然后移动到下一个标签。这是为什么?

编辑:

我还注意到第一个元素正确读取,但是,第二个元素的内部文本没有通过。

4

1 回答 1

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

按任意键继续 。. .

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

于 2012-11-15T05:29:54.443 回答