当前位置:网站首页>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 删除某一个属性

原网站

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