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(); }
尽管在 .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(); }
相关文章推荐
- 使用七牛云存储的一些经验总结
- 前端Js组件库OperaMasks-UI使用经验介绍
- 以下一些使用ASP.NET和VISUAL STUDIO.NET2003的经验和技巧
- Javascript使用经验总结
- [2017-10-26]Abp系列——DTO入参验证使用方法及经验分享
- vim 使用经验
- CentOS 7 使用经验
- 使用XmlReader读取xml文件
- Ubuntu使用小经验,你会想知道的
- 使用JAXP进行SAX解析(XMLReaderFactory、XMLReader 、SAXParserFactory与SAXParser)
- Spotfire使用经验——热图的创建(辛苦工作十小时的成果分享)
- QTP中Description对象使用的一点经验
- Redis 使用的一些经验分享
- 分享使用jQuery调用WCF的详解经验
- 有关FileUpload组件的使用和调试的经验(转)
- 金盾高级视频加密系统使用教程与经验分享 (金盾视频加密系统跨平台版)
- 针式PKM使用经验一:日期视图
- 使用NM-16ESW模拟交换机--使用经验
- [SQL使用经验]选用 IN 还是 EXISTS,哪个性能更好
- Redis使用经验