首页 > 代码库 > System.Xml 命名空间

System.Xml 命名空间

System.Xml 命名空间

 

XML 已经成为一种流行的数据格式,其原因很多,对于大多数人来说,这是一种很方便表示数据的格式,文件有可读性。程序员的处理文件既有非结构化的,即不遵循一种模式,或者是结构化的,即数据符合 XSD 架构定义的约定;还希望方便地用 XPath 查询数据,即,为了处理一种新的数据格式而编写自定义的解析程序,很少需要,文件可以在不同的 XML 格式之间快速转换,用强大的 XSLT 语言转换数据。

System.Xml 命名空间处理 XML 文件的类所有的方法很多,有这里描述的,但不止这些,我们将学习的方法是处理 XML 文件时最常用的,W3C 推荐的 .NET 实现的XML 文档对象模型(Document Object Model,DOM),它通常用类 XmlDocument 表示。这节的第一个例子将读取下面的 XML 文件fruits.xml:

 

<fruits>

<apples>2</apples>

<oranges>3</oranges>

<bananas>1</bananas>

</fruits>

 

下面的代码加载 fruits.xml,绑定到标识符 fruitsDoc,然后,用一个循环显示数据:

 

open System.Xml

// create an xml dom object

let fruitsDoc =

let temp = new XmlDocument()

temp.Load("fruits.xml")

temp

// select a list of nodes from the xml dom

let fruits =fruitsDoc.SelectNodes("/fruits/*")

// print out the name and text from eachnode

for x in fruits do

printfn "%s = %s " x.Namex.InnerText

 

前面代码的运行结果如下:

 

apples = 2

oranges = 3

bananas = 1

 

下一个例子演示了如何构建 XML 文档,并写到磁盘。假设有一组数据,绑定到标识符 animals,准备把它写成 XML 文件 animals.xml。先创建一个新的 XmlDocument 对象,然后构建文档,调用 XmlDocument 实例成员 CreateElement 方法创建根结点,用 AppendChild 方法追加文档对象。通过枚举 animals 列表,构建文档的其余部分,创建并追加结点。

 

open System.Xml

 

// create an xml dom object

let fruitsDoc =

  lettemp = new XmlDocument()

  temp.Load("fruits.xml")

  temp

 

// select a list of nodes from the xml dom

let fruits =fruitsDoc.SelectNodes("/fruits/*")

 

// print out the name and text from eachnode

for x in fruits do

  printfn"%s = %s " x.Name x.InnerText

 

运行代码,创建了 animals.xml 文件,其内容如下:

 

<animals>

  <ants>6</ants>

  <spiders>8</spiders>

  <cats>4</cats>

</animals>

 

System.Xml 命名空间很大,有许多操作 XML 数据的类,表 9-1 是其中最有用的部分。

 

表 9-1 System.XML 命名空间中有用的类

 

描述

System.Xml.XmlDocument

W3C 的 XML DOM 的 Microsoft .NET 实现。

System.Xml.XmlNode

这个类不能直接创建,但经常使用,它是XmlDocument 的 SelectSingle 结点方法的结果。

System.Xml.XmlNodeList

这个类是结点的集合,是 XmlDocument 的SelectNode方法的结果。

System.Xml.XmlTextReader

它提供了向前、只读 XML 文档。虽然使用不如XmlDocument 类那样方便,但不要求把整个文档加载到内存;当处理大文档时,使用这个类通常比 XmlDocument 有更好的性能。

System.Xml.XmlTextWriter

它提供了向前、写 XML 文档。如果 XML 文档必须从头开始,这通常是最容易的方法。

System.Xml.Schema

.XmlSchema

它提供了加载 XML 架构到内存的方法,然后,用户能够用它来验证 XML 文档。

System.Xml.Serialization

.XmlSerializer

实现在 .NET 对象与 XML 之间序列化。然而,它只能序列化公开字段,而 BinarySerializer 还可以用于框架中的其他地方。

System.Xml.XPath

.XPathDocument

处理 XPath 表达式最有效的方法。注意,这个类仅是 XML文档的包装,必须使用 XPathExpression 和XPathNavigator 才能工作。

System.Xml.XPath

.XPathExpression

表示用于 XPathDocument 的 XPath 表达式,它可以被编译,重复使用时更有效。

System.Xml.XPath

.XPathNavigator

按照 XPathDocument 执行 XPathExpression以后,这个类能够浏览结果;它的优势在于一次只抽取一个结点到内存,因此,在内存使用上更有效。

System.Xml.Xsl.XslTransform

使用 XSLT 样式表转换 XML。