您的位置:首页 > 其它

XMLReader的使用经验

2006-11-03 00:57 141 查看
在操作小规模的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(); }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: