codecamp

XML 元素

XML 元素

XML 元素是 XML 文档中必不可缺的部分,我们可以将 XML 元素看成一个容器,其中存放了文本,元素,属性,媒体对象或所有的这些。


XML 文档包含 XML 元素。

每个 XML 文档包含一个或多个元素,其范围是任一分隔的由开始和结束标记,或者为空元素,用一个空元素标签。


什么是 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>

在上面的实例中,​<bookstore>​ 和 ​<book>​ 都有 元素内容,因为他们包含其他元素。​<book>​ 元素也有属性(category="CHILDREN")。​<title>​、​<author>​、​<year> ​和 <price> 有文本内容,因为他们包含文本。


XML 命名规则

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

  • 名称可以包含字母、数字以及其他的字符
  • 名称不能以数字或者标点符号开始
  • 名称不能以字母 xml(或者 XML、Xml 等等)开始
  • 名称不能包含空格

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


最佳命名习惯

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

名称应简短和简单,比如:​<book_title>​,而不是:​<the_title_of_the_book>​。

避免 "​-​" 字符。如果您按照这样的方式进行命名:"​first-name​",一些软件会认为您想要从 ​first​ 里边减去 ​name​。

避免 "​.​" 字符。如果您按照这样的方式进行命名:"​first.name​",一些软件会认为 "​name​" 是对象 "​first​" 的属性。

避免 "​:​" 字符。冒号会被转换为命名空间来使用(稍后介绍)。

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

在 XML 中,​éòá​ 等非英语字母是完全合法的,不过需要留意,您的软件供应商不支持这些字符时可能出现的问题。


XML 元素是可扩展的

XML 元素是可扩展,以携带更多的信息。

请看下面的 XML 实例:

<note>
<to>小明</to>
<from>小狮妹</from>
<body>周末别忘记学习编程哦~</body>
</note>

让我们设想一下,我们创建了一个应用程序,可将 ​<to>​、​<from>​ 以及 ​<body>​ 元素从 XML 文档中提取出来,并产生以下的输出:

MESSAGE

To: 小明
From: 小狮妹

周末别忘记学习编程哦~

想象一下,XML 文档的作者添加的一些额外信息:

<note>
<date>2020-09-09</date>
<to>小明</to>
<from>小狮妹</from>
<heading>提醒</heading>
<body>周末别忘记学习编程哦~</body>
</note>

那么这个应用程序会中断或崩溃吗?

不会。这个应用程序仍然可以找到 XML 文档中的 ​<to>​、​<from>​ 以及 ​<body>​ 元素,并产生同样的输出。

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

以上就是有关 XML 元素的全部内容了,你需要注意一点:在 XML 中,所有元素必须有结束标记!


XML 语法
XML 属性
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

实例/测验

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }