当前位置:网站首页>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 删除某一个属性
边栏推荐
- AI painting minimalist tutorial
- 从0到1建设智能灰度数据体系:以vivo游戏中心为例
- 一文掌握数仓中auto analyze的使用
- CTF竞赛题解之stm32逆向入门
- 用fail2ban阻止密码尝试攻
- The old-fashioned synchronized lock optimization will make it clear to you at once!
- [FAQ] summary of common causes and solutions of Huawei account service error 907135701
- WPF double slider control and forced capture of mouse event focus
- 游戏启动后提示安装HMS Core,点击取消,未再次提示安装HMS Core(初始化失败返回907135003)
- CA:用于移动端的高效坐标注意力机制 | CVPR 2021
猜你喜欢
6 分钟看完 BGP 协议。
PostgreSQL 9.1 飞升之路
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
Practice: fabric user certificate revocation operation process
【云原生 | Kubernetes篇】深入了解Ingress(十二)
MDK在头文件中使用预编译器时,#ifdef 无效的问题
Concepts and theories related to distributed transactions
从0到1建设智能灰度数据体系:以vivo游戏中心为例
一文掌握数仓中auto analyze的使用
AI 绘画极简教程
随机推荐
Valentine's Day confession code
6 分钟看完 BGP 协议。
Rsyslog配置及使用教程
CVPR 2022 | transfusion: Lidar camera fusion for 3D target detection with transformer
Etcd 存储,Watch 以及过期机制
WPF双滑块控件以及强制捕获鼠标事件焦点
Golang sets the small details of goproxy proxy proxy, which is applicable to go module download timeout and Alibaba cloud image go module download timeout
Comprehensive evaluation of modular note taking software: craft, notation, flowus
一个数据人对领域模型理解与深入
Simple understanding of binary search
二分查找的简单理解
Comparative study of the gods in the twilight Era
Xue Jing, director of insight technology solutions: Federal learning helps secure the flow of data elements
Apache server access log access Log settings
CANN算子:利用迭代器高效实现Tensor数据切割分块处理
请问大佬们有遇到这个情况吗,cdc 1.4 连接MySQL 5.7 无法使用 timestamp
How real-time cloud interaction helps the development of education industry
Personalized online cloud database hybrid optimization system | SIGMOD 2022 selected papers interpretation
一文掌握数仓中auto analyze的使用
Implementation mode and technical principle of MT4 cross platform merchandising system (API merchandising, EA merchandising, nj4x Merchandising)