当前位置:网站首页>XML入门三

XML入门三

2022-07-04 12:42:00 华为云

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的技术类似于读取其他任何文件,先打开文件,读取文件,直至文件结尾,后关闭文件。

XmlTextReader newReader = new XmlTextReader("filename");newReader.Read();	//读取xml文件的下一个结点newReader.Read().XmlNodeType()//找到所需要的内容

XmlNodeType枚举的成员:

成 员说 明
Attribute属性,如id=“1”
CommentXML注释,如<!- - 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文件");

原网站

版权声明
本文为[华为云]所创,转载请带上原文链接,感谢
https://bbs.huaweicloud.com/blogs/363615