当前位置:网站首页>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 删除某一个属性
边栏推荐
猜你喜欢

洞见科技解决方案总监薛婧:联邦学习助力数据要素安全流通

When MDK uses precompiler in header file, ifdef is invalid

It is six orders of magnitude faster than the quantum chemical method. An adiabatic artificial neural network method based on adiabatic state can accelerate the simulation of dual nitrogen benzene der

Annual comprehensive analysis of China's mobile reading market in 2022

光环效应——谁说头上有光的就算英雄
提高MySQL深分页查询效率的三种方案

"Pre training weekly" issue 52: shielding visual pre training and goal-oriented dialogue

n++也不靠谱

【AI系统前沿动态第40期】Hinton:我的深度学习生涯与研究心法;Google辟谣放弃TensorFlow;封神框架正式开源

Comparative study of the gods in the twilight Era
随机推荐
In 2022, it will be es2022 soon. Do you only know the new features of ES6?
三星量产3纳米产品引台媒关注:能否短期提高投入产出率是与台积电竞争关键
爬虫练习题(一)
Optional values and functions of the itemized contenttype parameter in the request header
6 分钟看完 BGP 协议。
CTF竞赛题解之stm32逆向入门
游戏启动后提示安装HMS Core,点击取消,未再次提示安装HMS Core(初始化失败返回907135003)
Why can the implementation class of abstractdispatcherservletinitializer be called when initializing the web container
PostgreSQL 9.1 飞升之路
CANN算子:利用迭代器高效实现Tensor数据切割分块处理
Is the outdoor LED screen waterproof?
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
Solution: how to delete the information of Jack in two tables with delete in one statement in Oracle
CTF competition problem solution STM32 reverse introduction
Two dimensional code coding theory
eclipse链接数据库中测试SQL语句删除出现SQL语句语法错误
Detailed explanation of mt4api documentary and foreign exchange API documentary interfaces
AI painting minimalist tutorial
7 月数据库排行榜:MongoDB 和 Oracle 分数下降最多
美团·阿里关于多模态召回的应用实践