Xml基础03

2023-11-30 18:53:59 浏览数 (1)

Xml基础03

补充复习:

Xml

可扩展的标记语言

eXtensible Markup Language

以简单文本格式存储数据的方式

Xml****结构

元素,属性,声明,注释

XML****文档验证

DTD

Schema :XSD架构

文档对象模型-DOM

XML文件的树状结构

Xml****数据解析

Dom:XPath

Sax:XmlTextReader, XmlTextWriter

XmlAdo.Net交互

XmlNode****选择节点的方法

SelectSingleNode(string)

选择匹配 XPath 表达式的第一个 XmlNode

SelectNodes(string)

选择匹配 XPath 表达式的节点列表

适用于:

XmlDocument

XmlElement

XmlAttribute

XPath

Xml文档查询语言

用于从 XML 文档中选择节点集

目标 (假设当前节点是book节点)

XPath 举例

选择当前节点

.

选择父节点

选择当前节点的所有子节点

*****

选择author子节点

author

选择当前节点的title属性

@title

选择当前节点的所有属性

@*

选择当前节点的所有文本节点(XmlText)

text()

在当前文档中选择带有特定名称的所有节点,例如选择所有 author节点

//author

在当前文档中选择带有特定名称和特定父节点名称的所有节点,例如选择所有父节点是book,节点是author的节点

//book/author

选择值满足条件的节点,例如选择作者是吴承恩的book节点

**//book[author=吴承恩

选择属性满足条件的节点,例如选择是title是红楼book节点

**//book[@title= ‘红楼梦’]

Xml解析

DOM : 基于文档(对象),树型结构,载入时整个载入(内存占用较大)

SAX : 基于流,载入时逐行载入(适合于大量数据的解析)

SAX 模式解析Xml

主要的构成类:

XmlReader(包含XmlTextReader 和 XmlNodeReader两个类)

  • 只向前,非缓存的读取器,将XML数据作为流来处理。
  • 内存需求并不是很大
  • 没有灵活的导航需求
  • 没有在基于DOM的模型中可用的读写功能

XmlWriter (包含Xml)

  • 是一个为生成XML流提供“只向前,非缓存”方式的抽象类。

XmlTextReader:提供了对XML文件的快速,只向前的访问。XmlTextReader的技术类似于读取其他任何文件,先打开文件,读取文件,直至文件结尾,后关闭文件。

代码语言:javascript复制
XmlTextReader newReader = new XmlTextReader("filename");
newReader.Read();	//读取xml文件的下一个结点
newReader.Read().XmlNodeType()//找到所需要的内容

XmlNodeType枚举的成员:

成 员

说 明

Attribute

属性,如id=“1”

Comment

XML注释,如<!- - Some comment - ->

Document

文档对象,表示XML树的根

XmlDeclaration

在文档顶部的XML声明

Element , EndElement

开始元素和结束元素

Text

元素的文本内容

Whitespace

标记之间的空白

……

……

……

……

使用XmlTextWriter写XML文件的过程和文件系统写数据的情形相同。 1 打开或者创建一个文件。 2将数据写入文件中 3刷新数据流以确保提交每一个动作 4 关闭文件

XmlTextWrite的使用:

1创建一个xml文件 XmlTextWriter bookWriter = new XmlTextWriter(“C:book.xml", Encoding.Default); 2写XML 创建XML声明 bookWriter.WriteStartDocument(); 编写节点: bookWriter.WriteStartElement(“Price”); bookWriter.WriteString(“120”); bookWriter.WriteEndElement(); 或者 bookWriter.WriteElementString(" Price ", “120”); 添加属性 bookWriter.WriteStartElement(“Book”); bookWriter.WriteAttributeString(“Title”, “三国演义”); bookWriter.WriteEndElement(); 3刷新数据流关闭文件 bookWriter.Flush(); bookWriter.Close();

DomSax区别

文档对象模型DOM

DOM 读取整个XML文件并将该文件存储在一个树结构中。

DOM 创建表示原始文档中每个东西的对象,包括元素、文本、属性和空格。

DOM API 是解析 XML 文档非常有用的方法。

SAX解析

读取和操作 XML 数据更快速、更轻量。

SAX 在读取文档时处理它,从而不必等待整个文档被存储之后才采取操作。

适用于处理数据流,即随着数据的流动而依次处理数据。

总结

Xml

可扩展的标记语言

eXtensible Markup Language

以简单文本格式存储数据的方式

Xml结构

元素,属性,声明,注释

XML文档验证

DTD

Schema :XSD架构

Xml数据解析

文档对象模型-DOM

类似Sax:XmlTextReader, XmlTextWriter

XmlAdo.Net交互

DataSet

ReadXml(“xml文件”)

WriteXml(" xml文件");

0 人点赞