XML学习

本文聚焦于XML,介绍其用于传输和存储数据的特性。详细阐述了XML语法,如根元素、声明、标签规则等;说明了XML元素的定义、命名规则和习惯;还讲解了XML属性,包括引号使用、元素替代建议以及元数据属性的应用。


(文章摘自菜鸟教程: https://www.runoob.com/xml/xml-tutorial.html)

1. XML简介

XML 被设计用来传输和存储数据,其焦点是数据的内容。

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

2. XML语法

2.1 XML 文档必须有根元素

XML 必须包含根元素,它是所有其他元素的父元素,比如以下实例中 root 就是根元素:

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

2.2 XML 声明

XML 声明文件的可选部分,如果存在需要放在文档的第一行,如下所示:

<?xml version="1.0" encoding="utf-8"?>
以上实例包含 XML 版本:1.0
UTF-8 也是 HTML5, CSS, JavaScript, PHP, 和 SQL 的默认编码。

2.3 所有的 XML 元素都必须有一个关闭标签

<p>This is a paragraph.</p>
<br />

注释:从上面的实例中,您也许已经注意到 XML 声明没有关闭标签。这不是错误。声明不是 XML 文档本身的一部分,它没有关闭标签。

2.4 XML 标签对大小写敏感

XML 标签对大小写敏感。标签 与标签 是不同的。

必须使用相同的大小写来编写打开标签和关闭标签。

2.5 XML 必须正确嵌套

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

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

在上面的实例中,正确嵌套的意思是:由于 元素是在 元素内打开的,那么它必须在 元素内关闭。

2.6 实体引用

在 XML 中,一些字符拥有特殊的意义。

如果把字符 “<” 放在 XML 元素中,会发生错误,这是因为解析器会把它当作新元素的开始。

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

2.7 XML 中的注释

在 XML 中编写注释的语法与 HTML 的语法很相似。

<!-- This is a comment -->

3、XML元素

XML 元素指的是从(且包括)开始标签直到(且包括)结束标签的部分。

元素可包含其他元素、文本或者两者的混合物。元素也可以拥有属性。

<bookstore>
    <book category="CHILDREN">
        <title>Harry Potter</title>
        <author>J K. Rowling</author>
        <year>2005</year>
        <price>29.99</price>
    </book>
    <book category="WEB">
        <title>Learning XML</title>
        <author>Erik T. Ray</author>
        <year>2003</year>
        <price>39.95</price>
    </book>
</bookstore>

在上面的实例中, 和 都有 元素内容,因为他们包含其他元素。 元素也有属性(category=“CHILDREN”)。、、 和 有文本内容,因为他们包含文本。

元素命名规则:

  • XML 元素必须遵循以下命名规则:

  • 名称可以包含字母、数字以及其他的字符

  • 名称不能以数字或者标点符号开始

  • 名称不能以字母 xml(或者 XML、Xml 等等)开始

  • 名称不能包含空格

  • 可使用任何名称,没有保留的字词。

命名习惯:

使名称具有描述性。使用下划线的名称也很不错:<first_name>、<last_name>。

名称应简短和简单,避免 “-” 字符,避免 “.” 字符,避免 “:” 字符。

XML 文档经常有一个对应的数据库,其中的字段会对应 XML 文档中的元素。有一个实用的经验,即使用数据库的命名规则来命名 XML 文档中的元素。

在 XML 中,éòá 等非英语字母是完全合法的,

4、XML属性

XML元素具有属性,类似 HTML。

属性(Attribute)提供有关元素的额外信息。

4.1 XML 属性必须加引号

属性值必须被引号包围,不过单引号和双引号均可使用。比如一个人的性别,person 元素可以这样写:

或者这样也可以:

如果属性值本身包含双引号,可以使用单引号,就像这个实例:

或者可以使用字符实体:

4.2 应尽量使用元素替代属性

因使用属性而引起的一些问题:

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

属性难以阅读和维护。请尽量使用元素来描述数据。而仅仅使用属性来提供与数据无关的信息。

4.3 针对元数据的 XML 属性

有时候会向元素分配 ID 引用。这些 ID 索引可用于标识 XML 元素,它起作用的方式与 HTML 中 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>

上面的 id 属性仅仅是一个标识符,用于标识不同的便签。它并不是便签数据的组成部分。

所以:元数据(有关数据的数据)应当存储为属性,而数据本身应当存储为元素。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值