XmlTextReader 继承自 XmlReader,其命名空间是:System.Xml。
它是一种只读、向前的高效读取 XML 的类。
string xmlString = @"<root><item name=""item1"">1</item></root>";
XmlTextReader reader = new XmlTextReader(xmlString, XmlNodeType.Element, null);
while (reader.Read())
{
if (reader.NodeType == XmlNodeType.Element)
{
Response.Write("<p>" + reader.NodeType.ToString() + ":" + reader.Name +
";属性个数:" + reader.AttributeCount + "</p>");
}
else
{
Response.Write("<p>" + reader.NodeType.ToString() + ":" + reader.Value + "</p>");
}
}
reader.Close();
- XmlTextReader 类构造函数既可跟 XML 文件路径,也可跟 XML 片段,若是 XML 片段,则指定第二个参数为 XmlNodeType.Element。
- reader.Read 每次执行后,更改当前到达的位置,并更改 NodeType、Name、Value 等属性的值,以供后面使用。
- reader.Read 若没有达到 XML 的最后面,都将返回 true。
以上结果为:
Element:root;属性个数:0
Element:item;属性个数:1
Text:1
EndElement:
EndElement:
我们可以看出,它并不是按 Node 来读取的,而是一段一段的来读取:
- 先是 <root>
- 再是 <item name="item1">
- 再是 1
- 再是 </item>
- 最后是 </root>
XmlTextReader 读取是很快速,但有时不是很方便,比如我们想方便地获取某一节点中的内容,就很麻烦,得循环,得判断名称是否匹配要查找的节点名称。这种情况下,我们可用 XmlDocument 或 XmlDataDocument。