ASP.NET 与 XML-实践用 XmlTextReader 读取 XML 片段

作者:vkvi 来源:ITPOW(原创) 日期:2010-6-23

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。

相关文章