XML笔记

XML是一种可扩展标记语言,用于传输和存储数据。它将数据从HTML分离,简化数据共享和传输,允许自定义标签。XML文档具有树结构,每个文档必须有根元素,遵循严格的语法规则,如大小写敏感、正确嵌套标签等。实体引用用于处理特殊字符。通过XML,可以实现数据的独立、结构化和自我描述。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

XML 笔记

首先:学习 XML 需要有一定的 HTML JavaScript 的基础

一、什么是 XML

XML 是可扩展标记语言 eXtensible Markup Language
多用来传输和储存数据

  • XML 是一种标记语言
  • XML 是用来传输数据的语言而不是显示数据
  • XML 语言需要自行定义标签并且具有自我描述性
    • XML 在意的是数据内容(传输信息)
    • HTML 在意的是数据的外观(显示信息)

举例说明:XML 文档实例 Jani 写给 Tove 的便签

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

上面的这条便签具有自我描述性。它包含了发送者和接受者的信息,同时拥有标题以及消息主体。但是,这个 XML 文档仍然没有做任何事情。它仅仅是包装在 XML 标签中的纯粹的信息。我们需要编写软件或者程序,才能传送、接收和显示出这个文档。

通过 XML 可以发明自己的标签
  • 上述例子中标签中没有在任何 XML 标准中定义过<to>和<form>XML 中没有预定义的标签相
  • 对比 HTML 中的标签全都是通过 HTML 定义过的标签
  • XML 允许创业者定义自己的标签和自己的文档结构

二、XML 的用途

XML 把数据从 HTML 分离

首先举一个例子当你需要在 HTML 文档中显示动态数据,那么每当数据改变的时候,都要花费我们大量的时间去编辑 HTML。通过 XML 数据能够给储存在独立的 XML 文件中。这样我们就可以专注于使用 HTML/CSS 进行显示和布局,并且可以在修改底层数据的时候不在需要对 HTML 进行改变。 通过使用几行 JavaScript 代码,我们可以读取一个外部 XML 文件,并更新我们的网页数据内容

XML 简化数据共享

XML 数据以纯文本格式进行存储,因此提供了一种独立与软件和硬件的数据储存方法。这就可以让创建不懂应用程序可以共享的数据变得更加容易

简化数据传输

互联网上的不兼容的系统之间交换数据对于程序员来说是一件很费时的事情,这时 yogaXML 交换数据就降低了从不兼容的应用程序中读取数据的复杂性

三、XML 的树结构

XML 文档形成了一种树的结构,它从 “根部” 开始,然后扩展到 “枝叶”。

树结构是通常被称为 XML 树,并且可以很容易地描述任何 XML 文档。
通过采用树状结构,你可以知道所有从根开始的后续的分行及支行。

一个 XML 文档实例

XML 文档使用简单的具有自我描述性的语法:

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

第一行是 XML 的生命。它定义 XML 的版本(1.0)和所使用的编码(ISO-8859-1 = Latin-1 / 西欧字符集)。下一行描述文档的根元素(比如说:本文档是一个标签):

<note>

接下来的四行描述根的四个子元素(to,form,heading 以及 body):

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

最后一行的定义根元素的结尾:

</note>

这个事例中描述的是一张 Jani 写给 Tove 的便签显示出了 XML 具有独特的自我描述性

XML 文档形成一种树结构

XML 文档必须包含根元素。钙元素是所有其他元素的父元素。
XML 文档中的元素形成了一颗文档树。

这棵树从根部开始,并扩展到树的最低端。
所有的元素都可以有子元素:

<root>
<child>
<subchild>.....</subchild>
</child>
</root>

父、子以及通报等术语用于描述元素之间的关系。父元素拥有子元素。相同层级上的子元素成为问题(兄弟或姐妹)。
所有的元素都可以有文本内容和属性(类似 HTML 中)。

实例 XML 中的一本书:

实例

<bookstore>
<book category="COOKING">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
<book category="CHILDREN">
<title lang="en">Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
<book category="WEB">
<title lang="en">Learning XML</title>
<author>Erik T. Ray</author>
<year>2003</year>
<price>39.95</price>
</book>
</bookstore>

实例中的根元素是<bookstore>。文档中的所有<book>元素都被包含在<bookstore>中。<book>元素中有四个子元素:<title>、<author>、<year>、<price>

XML 语法

语法规则

所有 XML 都必须有一个关闭标签

在 HTML 中,有些元素不必须有一个关闭标签:

<p>This is a paragraph.
<br>

而在 XML 中,省略关闭标签是非法的

<?xml version="1.0" encoding="UTF-8" ?>
<p>This is a paragraph.</p>

注释:打开标签和关闭标签通常被称为开始标签和结束标签,本质上是相同的。

XML 是大小写敏感的语言

XML 标签对大小写敏感,需要用相同的大小写来编写打开标签和关闭标签

<Message>This is incorrect</message>
<message>This is correct</message>

XML 必须正确嵌套

在 HTML 中,经常会有没有正确嵌套的元素:

<b><i>This text is bold and italic</b></i>

而在 XML 中,所有元素都必须彼此正确的嵌套

<b><i>This text is bold and italic</i></b>

两者的区别是 i 和 b 的结束标签是否要和 i 和 b 的起始标签相对应。

XML 文档必须有根元素

XML 文档必须有一个元素是所有其他元素的父元素。该元素为根元素

<root>
<child>
<subchild>.....</subchild>
</child>
</root>

XML 属性值必须加引号

与 HTML 类似,XML 元素也可以拥有属性(名称、值得对)。
在 XML 中、XML 的属性值必须加引号。
请研究下面两个 XML 文档。第一个是错误的,第二个是正确的:

<note date=12/11/2007>
<to>Tove</to>
<from>Jani</from>
</note>
<note date="12/11/2007">
<to>Tove</to>
<from>Jani</from>
</note>

实体引用

在 XML 中,一些字符拥有特殊的意义
如果我们把字符”<” 放到 XML 元素中,会发生错误,这是因为解析器会把它当做新元素的开始。
这样会产生 XML 错误:

<message>if salary < 1000 then</message>

为了避免这个错误需要用实体引用来代替”<” 字符

 <message>if salary &lt; 1000 then</message>

在 XML 中,有五个预定义的实体引用:

在 XML 中,只有字符 “<” 和“&”确实是非法的,大于号是合法的但是用实体引用来代替它是好的习惯

过两天再继续发布第二期

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值