XmlReader和NodeTypes

我有一个XML文件,我需要从中读取以获取一些文本值。 我在使用reader.NodeType = XMLNodeType.Text时遇到问题,并了解NodeType.Text构成的节点是什么。

我的XML阅读器只接收NodeType = Element并忽略节点声明之间的任何文本。

示例XML:

   Some text goes here I need to read.   

我的代码看起来像这样:

 elementName = formName.Replace(" ", ""); while (reader.Read()) { // when we find an element node, we remember its name if ((reader.NodeType == XmlNodeType.Element) && (reader.Name == elementName)) { reader.Read(); //if the next node = 'helptext' then get that text data if (reader.Name == "helptext") { // for text nodes...get the text values if ((reader.NodeType == XmlNodeType.Text) && (reader.HasValue)) { formMessage = reader.Value; } } } } 

Nodetype == XmlNodeType.Text的if语句永远不会为true。

我做错了什么,如何在XML文件中指定Text的节点类型?

你不需要这样做:

 if (reader.Name == "helptext") { reader.Read(); if ((reader.NodeType == XmlNodeType.Text) && (reader.HasValue)) { formMessage = reader.Value; } } 

也就是说,helptext节点是一个Element,它的文本是childnode,是TextNode类型