当前位置:网站首页>XML入门一
XML入门一
2022-07-04 12:42:00 【华为云】
Xml基础01
概念:
可扩展的标记语言,是以简单文本格式存储数据的方式。可用于序列化反序列化(序列化是通过将对象转换为字节流,从而存储对象或将对象传输到内存,数据库或文件的过程。主要用途是保存对象的状态,包括对象的数据,以便能够在需要是重建对象。反向过程称为 反序列化。)
xml的元素 - element:
由一对尖括号和尖括号斜杠共同组成一个最基本的元素。例如 <> </>,在内部是xml的标签标记。尖括号的中间是内容。
如 : <book>西游记</book>
<title>西游记</title>
<auther>吴承恩</auther>
标签之间可以有包含的关系,互相嵌套的关系(不过不建议使用,代码过于复杂不便于阅读)
xml的元素和属性
属性: <book title=‘西游记’>
</book>
元素和属性的区别:
同是存储数据的方式
区别不大
元素不能进行复杂对象的描述
xml的声明
声明文件格式,版本,编解码。
<?xml version="1.0"?><?xml version="1.0" encoding="utf-8" ?><?xml version="1.0" encoding="GBK" ?>
xml的注释
注释符号
<!-- -->
xml的结构
Xml提供了一种结构化的组织数据的方式,不同于关系数据库。
Xml数据是分层组织的,有点类似windows explorer中的文件夹和文件。
每一个文档必须有一个根元素,其中包含所有的元素和文本数据。(即必须要有一个根的标签元素,其他的标签元素都被它包含)
<?xml version="1.0"?><books> <book></book></books><!--这是合法的->
xml的命名空间
即为xml命名一个名字。
例如下表:
<?xml version="1.0"?><books xmlns:myNS="123123"> <book></book></books>
xml的规则
1.必须有声明语句
<? xml version=“1.0” ?>
2.有且只有1个根元素
3.每一个元素都有闭标记
4.没有有重叠元素—所有的子元素必须完全嵌套在父元素内
5.所有的属性必须放在引号内
DTD文档定义类型
不允许规定元素和属性的数据类型(对xml文件的规定约束)
schema
常用的XSD XML Schema Deinition language
在.net中也称为XML架构,可以规定元素和属性的数据结构,以.xsd文件方式存储
命名空间:
http://www.w3.org/2001/XMLSchema 根元素: <schema></schema>
<?xml version="1.0"encoding="utf-8"?><xs:schema id="SchemaBooks" targetNamespace="http://tempuri.org/SchemaBooks.xsd" elementFormDefault="qualified" xmins="http://tempuri.org/SchemaBooks.xsd" xmlns:mstns="http://tempuri.org/SchemaBooks.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="Books"> <xs:complexType> <xs:choice maxOccurs="unbounded"> <xs:element name="Book"> <xs:complexType> <xs:sequence> <xs:element name="title"type="xs:string"/> <xs;element name="price"type="xs:decimal"/> </xs;sequence> </xs:complexType> </xs:element> </xs;choice> </xs:complexType> </xs:element></xs:schema><!--schema 文档根路径(元素)element 结点choice 复杂结点maxOccurs 节点数量限制unbounded 是否有限制complexType 指定该标签下的元素类型->
xml与xsd关联
在vs中,可以通过
System.Data.DataSet ds = new System.Data.DataSet();ds.ReadXml("");ds.WriteXmlSchema("");//可以将xml文件读取并转换为xsd文件
xsd的几个常见默认值:
xmlns:xs=http://www.w3.org/2001/XMLSchema
schema规范中定义了一些基本的数据类型的命名空间
targetNamespace=http://tempuri.org/SchemaBookStore.xsd
该 schema 的命名空间的 URI 引用。
xmlns=http://tempuri.org/SchemaBookStore.xsd
本XSD命名空间
xmlns:mstns=http://tempuri.org/SchemaBookStore.xsd
本XSD命名空间,前缀名称为mstns
文档对象模型
Document Object Model, DOM
基于对象(基于树)(适合于对象的提取等)
SAX
Simple API for XML
基于流、推模型(性能更好,在读取解析数据时更适合)
DOM 文档对象模型主要类
XmlNode:表示 XML 文档中的单个节点。
XmlDocument:表示 XML 文档,继承自XmlNode 。
XmlElement:表示一个元素。
XmlAttribute表示一个属性
XmlText:表示元素文本内容。
XmlComment表示 XML 注释的内容。
XmlNodeList表示节点集合。
XmlNode.ChildNodes - 返回包含节点所有子级的 XmlNodeList。
XmlNode.SelectNodes - 返回包含匹配 XPath 查询的节点集合的 XmlNodeList
XmlDocument的使用
定义****XmlDocument
XmlDocument document = new XmlDocument();
加载XMl文件
document.Load(“XML文件”);
命名空间
using System.Xml;
常用属性:
FirstChild获取节点的第一个子级。 (继承自 XmlNode。)
DocumentElement 获取文档的根 XmlElement。
常用方法
Load()
Save()
获取根节点
document.FirstChild
获取根元素
document.DocumentElement
关于XmlNode的几个重要属性
FirstChild
LastChild
HasChildNodes
ParentNode
NextSibling
使用DOM创建xml文件
创建节点:
XmlDocument****方法
CreateNode 节点
CreateElement 元素
CreateAttribute 属性
CreateTextNode 内容
CreateComment 注释
插入节点:
XmlNode****方法
AppendChild 最后添加
InsertAfter 前添加
InsertBefore 后添加
删除节点:
XmlNode方法
RemoveAll 删除全
RemoveChild 删除某一个
RemoveAttribute 删除某一个属性
边栏推荐
- 模块化笔记软件综合评测:Craft、Notion、FlowUs
- 老掉牙的 synchronized 锁优化,一次给你讲清楚!
- 七、软件包管理
- 室外LED屏幕防水吗?
- Reinforcement learning - learning notes 1 | basic concepts
- jsonp
- After installing vscode, the program runs (an include error is detected, please update the includepath, which has been solved for this translation unit (waveform curve is disabled) and (the source fil
- Concepts and theories related to distributed transactions
- 二分查找的简单理解
- Database lock table? Don't panic, this article teaches you how to solve it
猜你喜欢
Master the use of auto analyze in data warehouse
A taste of node JS (V), detailed explanation of express module
JVM系列——栈与堆、方法区day1-2
面向个性化需求的在线云数据库混合调优系统 | SIGMOD 2022入选论文解读
Alibaba cloud award winning experience: build a highly available system with polardb-x
Read the BGP agreement in 6 minutes.
runc hang 导致 Kubernetes 节点 NotReady
Cann operator: using iterators to efficiently realize tensor data cutting and blocking processing
比量子化学方法快六个数量级,一种基于绝热状态的绝热人工神经网络方法,可加速对偶氮苯衍生物及此类分子的模拟
Dry goods sorting! How about the development trend of ERP in the manufacturing industry? It's enough to read this article
随机推荐
求解:在oracle中如何用一条语句用delete删除两个表中jack的信息
聊聊支付流程的设计与实现逻辑
阿里云有奖体验:用PolarDB-X搭建一个高可用系统
Interviewer: what is the difference between redis expiration deletion strategy and memory obsolescence strategy?
强化学习-学习笔记1 | 基础概念
Read the BGP agreement in 6 minutes.
Practice: fabric user certificate revocation operation process
Deploy halo blog with pagoda
Using nsproxy to forward messages
比量子化学方法快六个数量级,一种基于绝热状态的绝热人工神经网络方法,可加速对偶氮苯衍生物及此类分子的模拟
In 2022, it will be es2022 soon. Do you only know the new features of ES6?
洞见科技解决方案总监薛婧:联邦学习助力数据要素安全流通
go-zero微服务实战系列(九、极致优化秒杀性能)
WPF双滑块控件以及强制捕获鼠标事件焦点
N++ is not reliable
Runc hang causes the kubernetes node notready
Xue Jing, director of insight technology solutions: Federal learning helps secure the flow of data elements
Reading cognitive Awakening
Detailed explanation of mt4api documentary and foreign exchange API documentary interfaces
【云原生 | Kubernetes篇】深入了解Ingress(十二)