xml学习


XML解析

1. 应该掌握的知识:

  1. html
  2. javascript

2. 简介:

2.1 什么是xml:

  • XML 指可扩展标记语言(eXtensible Markup Language)。

  • XML 被设计用来传输和存储数据。

  • XML 的设计宗旨是传输数据,而不是显示数据。

  • XML 标签没有被预定义。您需要自行定义标签

  • XML 被设计为具有自我描述性。

  • XML 是 W3C 的推荐标准。

2.2 xml和html的差异:

  • HTML 旨在显示信息,而 XML 旨在传输信息。

2.3 XML 不会做任何事情

XML 不会做任何事情。XML 被设计用来结构化、存储以及传输信息。

<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>

具有自我描述性(自定义标签)。它包含了发送者和接受者的信息,同时拥有标题以及消息主体。

但是,这个 XML 文档仍然没有做任何事情。它仅仅是包装在 XML 标签中的纯粹的信息。我们需要编写软件或者程序,才能传送、接收和显示出这个文档。

3. XML的用途

3.1 xml把数据从html中分离

数据存储在xml文件中,通过js代码读取该xml的文件,更新网页数据

3.2 xml简化数据共享

xml的数据以文本的格式存储,独立于软件和硬件,可以有效的避免计算机系统和数据不兼容问题

3.3 xml简化数据传输

由于互联网上不同的系统,数据不兼容,交换数据同样不兼容问题,xml读取数据以纯文本的形式,避免了不兼容的问题

。。。。之后看菜鸟教程

XML的树结构

<?xml version="1.0" encoding="UTF-8"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>

要点:

1. xml代码的第一行必须是对xml的声明

2. 之后的第一个标签就是树的根,称为根元素

<note>

3. 接下来就是子元素

<to></to>
<from></from>
<heading></heading>
<body></body>

4. 菜鸟教程

XML语法

1. 首先进行声明

<?xml version="1.0" encoding="utf-8"?>

2. xml文档必须有根元素

3. 所有的xml元素必须严格关闭

4. xml标签对大小写敏感

5. xml的属性值必须加引号

6. xml的实体引用(类似于html的实体编码)

image-20210508175624094

  • 这些字符都应该被前面的编码代替

7. 注释方法

<!-- -->

8. Xml会保留空格

  • html会对空格进行缩减

9. XML以LF存储换行

  • XML 以 LF 存储换行。

XML的元素(注意不是属性)

根标签下的字标签,包含文本属性

1. 命名规则:

以字母开头,不包含空格

最佳命名习惯: 菜鸟教程

image-20210508180504152

2. xml的元素是可以扩展的

XML 的优势之一,就是可以在不中断应用程序的情况下进行扩展。

随时添加标签。。

xml的属性

xml的属性提供有关元素的额外的信息

1. xml属性必须加引号

2. xml中尽量少使用一些属性,有些属性可以被元素代替,那么推荐使用元素

image-20210509074220000

3. 有关属性的一些问题:

  • 属性不能包含多个值(元素可以)
  • 属性不能包含树结构(元素可以)
  • 属性不容易扩展(为未来的变化)

4. 针对元数据的xml属性

相同的元素可以用id属性值来标识,id只是标识作用

<messages>
<note id="501">
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
<note id="502">
<to>Jani</to>
<from>Tove</from>
<heading>Re: Reminder</heading>
<body>I will not</body>
</note>
</messages>

XML验证(DTD)

1. DTD的作用是定义xml文档结构

  • 在xml文件中应该声明对外部dtd文件的引用
<?xml version="1.0" encoding="ISO-8859-1"?> 声明xml文档
<!DOCTYPE note SYSTEM "Note.dtd"> //SYSTEM 表明后面可以包含本地文件,而这时包含的就是Notee.dtd文档,这也就是外部实体引入
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>

2. DTD大体结构

<!DOCTYPE note//表明note是根元素
[
<!ELEMENT note (to,from,heading,body)> //代表note根元素包含四个元素
<!ELEMENT to (#PCDATA)> //to元素 包含任意数据,#PCDTATA就相当于string的数据类型
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>
]>

3. DTD基本语法:

<!ELEMENT NAME CONTENT>
  • ELEMENT是关键字
  • NAME表示元素的名称
  • CONTENT是元素的类型,必须大写,CONTENT的三种写法:
(1) EMPTY-------表示该元素不能包含子元素和文本,但可以有属性
(2) ANY---------表示该元素可以包含任何在DTD中定义的元素内容
(3) #PCDATA-----可以包含任何字符数据,但是不能包含任何子元素

4. DTD元素的组合类型

DTD这样规定:

<!ELEMENT 家庭(人+,家电*)>

这个DTD规定家庭元素可以有1到多个“人”这个子元素,也可以有0到多个“家电”这个子元素,其中的+和*的含义与正则表达式的含义一致

XML这样写:

<家庭>
  < 名字=""性别=""/>
  < 名字=""性别=""年龄=""/>
  <家电 名称=""/>
  </家庭>

DTD引用实体和外部实体

  • 语法:
<!ENTITY entity-name entitty-value> # 引用内部实体

<!ENTITY entity-name SYSTEM "URI/URL"> # 引用外部实体

DTD总结:

(1). 当引用的DTD文件是本地文件时,用SYSTEM标识,并写上DTD文件路径,如下:


<!DOCTYPE 根元素 SYSTEM "DTD文件路径">

(2). 如果引用的DTD文件,是一个公共文件时,采用PUBLIC标识,如下方式:

<!DOCTYPE 根元素 PUBLIC "DTD名称""DTD文件的url">

超详细链接

XML javascript

1. XMLHttpRequest对象

xmlhttprequest对象用于在后台与服务器之间交换数据

作用:

  • 在不重新加载页面的情况下更新网页
  • 在页面已加载后从服务器请求数据
  • 在页面已加载后从服务器接收数据
  • 在后台向服务器发送数据

语法:

xmlhttp=new XMLHttpRequest(); 

XML Parser(解析器)

XML 解析器把 XML 文档转换为 XML DOM 对象 - 可通过 JavaScript 操作的对象。

菜鸟教程

Xml DoM

DOM(Document Object Model 文档对象模型)定义了访问和操作文档(xml)的标准方法。


文章作者: 尘落
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 尘落 !
评论
  目录