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。

System.Xml 命名空间

时间: 2024-12-25 08:13:18

System.Xml 命名空间的相关文章

System.Configuration 命名空间

第九章访问数据 设计计算机的目的是处理数据的,因此,很少有程序不需要访问数据,既可以是读很小的配置文件,还可以是访问一个全面的关系数据库管理系统.在这一章,我们将广泛学习在 F# 中的访问数据. 不管什么时候执行用 .NET 语言写的应用程序,.NET 运行时都会自动检查是否存在配置文件.这个文件的名字与可执行文件名相同,再加上扩展名 .config,文件必须放在与可执行文件相同的目录中.比如, MyApp.exe 的配置文件就是MyApp.exe.config.在 ASP.NET 应用程序中,

详解System.Data 命名空间

学习了面向对象的设计思想,我们的就应该明白分层的用法.通过机房重构和牛腩的学习我们对数据库已经掌握了一定的技能,System.Data已经是我们的老朋友了,但是我们对他又了解多少呢?下面让我们认真的了解一下System.Data命名空间.System.Data这个命名空间中又有很多的命名空间,我们最常用的就是System.Data.SqlClient,这个命名空间中有很多我们总是遇到的类,比如:SqlCommand.SqlConnection.SqlDataAdapter.SqlDataRead

全栈JavaScript之路( 二十四 )DOM2、DOM3, 不涉及XML命名空间的扩展

(一)DocumentType 类型的变化新增三个属性: publicId,systemId,internalSubset(内部子集) <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" [<!ELEMENT name (#PCDATA)>] > 通过, document.doc

System.IO 命名空间

System.IO 命名空间的主要目的是为了提供方便访问操作系统的文件和目录类型,另外,也提供写内存和网络流的方法. 这个命名空间提供主要两种方法处理文件和目录,能够使用FileInfo 和 DirectoryInfo 对象获得或修改文件和目录的信息:也能够用File 和 Directory 类实现相同的功能,但是两者都要求传入的文件名为静态成员.通常,如果想要获得文件系统对象的某一项信息,用 File 和 Directory 类:如果想要获得一个文件系统对象的多项信息,用 FileInfo 和

System.Xml.XmlException: “=”是意外的标记。标记应为“;”

使用.NET XmlDocument对象LoadXml(string xml)行为从指定字符串加载XML过程中报了一个错: “=”是意外的标记.标记应为“;”. 第 1 行,位置 567. 说明: 执行当前 Web 请求期间,出现未经处理的异常.请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息. 异常详细信息: System.Xml.XmlException: “=”是意外的标记.标记应为“;”. 第 1 行,位置 567. 源错误: 行 60: else if (menu

全栈JavaScript之路( 二十三 )DOM2、DOM3, 涉及XML命名空间的扩展(一)

<!DOCTYPE html> <xhtml:html xmlns:xhtml="http://www.w3.org/1999/xhtml"> <head> <title>Example XHTML page</title> </head> <body> <s:svg xmlns:s="http://www.w3.org/2000/svg" version="1.1&

WP8 中使用HTML Agility Pack与友盟分享SDK遇到的 System.Xml.XPath加载问题

今晚在尝试使用友盟最新的社交分享SDK时,按照官方Demo,并未做多少多少改动,就是去除了对微信.脸书和推特的分享.然后运行之后就一直报错 : {System.IO.FileLoadException: Could not load file or assembly 'System.Xml.XPath, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. Th

Unity使用Mono.Xml代替System.Xml 测试

测试环境 操作系统:Windows8.1 开发工具:Unity5.5.2 1.新建一个测试项目,观测引用System.Xml与Mono.Xml解析文件正确性,与打包后APK体积大小. 2.Mono.Xml 用例 using UnityEngine; using Mono.Xml; using System.Security; public class MonoXmlTest : MonoBehaviour { void Start () { SecurityParser parser = new

Atitit xml命名空间机制

命名冲突1 使用前缀来避免命名冲突2 使用命名空间(Namespaces)2 XML Namespace (xmlns) 属性2 默认的命名空间(Default Namespaces)2 命名空间的语法如下   xmlns:[prefix]="[url of name]"3 XML 命名空间提供避免元素命名冲突的方法. 命名冲突 在 XML 中,元素名称是由开发者定义的,当两个不同的文档使用相同的元素名时,就会发生命名冲突. 这个 XML 文档携带着某个表格中的信息: <tabl