XML入门三

举报
Echo_Wish 发表于 2022/07/04 09:59:27 2022/07/04
【摘要】 Xml基础03

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”
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文件");

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。