XMLReader的使用经验

       在操作小规模的XMl文件时,可以考虑使用XMLReader.

      尽管在 .NET Framework 2.0 版中,Microsoft .NET Framework 包括 XmlReader 类的具体实现,例如 XmlTextReader、XmlNodeReader 和 XmlValidatingReader 类,但是,我们建议您使用 Create 方法创建 XmlReader 实例。

     使用 XmlReaderSettings 类的属性启用或禁用功能。然后,XmlReaderSettings 对象传递给 Create 方法。

     通过使用 Create 方法和 XmlReaderSettings 类,您将得到下列好处:

  • 可以指定要在所创建的 XmlReader 对象上支持的功能。

  • XmlReaderSettings 类可以重复使用,以创建多个读取器对象。可以使用相同的设置创建多个具有相同功能的读取器。另外,可以修改 XmlReaderSettings 对象并创建具有不同功能集的新读取器。

  • 可以将功能添加到现有读取器中。Create 方法可以接受其他 XmlReader 对象。基础 XmlReader 对象可以是用户定义的读取器或 XmlTextReader 对象,也可以是要添加附加功能的另一个 XmlReader 实例。

  • 充分利用 .NET Framework 2.0 版本的 XmlReader 类中增加的所有新功能。某些功能只能在通过 Create 方法创建的 XmlReader 对象上使用,例如更好的一致性检查以及与 XML 1.0 建议的一致性。

XmlReaderSettings settings = new XmlReaderSettings();

settings.ConformanceLevel = ConformanceLevel.Fragment;

 settings.IgnoreWhitespace = true;

settings.IgnoreComments = true;

 XmlReader reader = XmlReader.Create("books.xml", settings);

下表介绍 XmlReader 类为处理元素提供的方法和属性。在 XmlReader 置于某个元素上之后,节点属性(例如 Name)将反映元素的值。除了下面所述的成员之外,XmlReader 类的任何常规方法和属性也可以用于处理元素。例如,可以使用 ReadInnerXml 方法读取元素的内容。

using (XmlReader reader = XmlReader.Create("book3.xml")) {

  // Parse the XML document.  ReadString is used to
  // read the text content of the elements.
  reader.Read();
  reader.ReadStartElement("book"); 
  reader.ReadStartElement("title");  
  Console.Write("The content of the title element:  ");
  Console.WriteLine(reader.ReadString());
  reader.ReadEndElement();
  reader.ReadStartElement("price");
  Console.Write("The content of the price element:  ");
  Console.WriteLine(reader.ReadString());
  reader.ReadEndElement();
  reader.ReadEndElement();

}
读取元素的属性

在位于某个元素节点上时,使用 MoveToAttribute 方法可以浏览该元素的属性列表。调用了 MoveToAttribute 之后,节点属性(例如 Name、NamespaceURI、Prefix 等)将反映该属性的属性,而不是其所属的包含元素的属性。

下表介绍专门为处理属性而设计的方法和属性。

/ Display all attributes.

if (reader.HasAttributes)

{ Console.WriteLine("Attributes of <" + reader.Name + ">");

 for (int i = 0; i < reader.AttributeCount; i++)

{ Console.WriteLine(" {0}", reader[i]); } // Move the reader back to the element node. reader.MoveToElement(); }

转载于:https://www.cnblogs.com/abob/archive/2006/11/03/548558.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值