XML 基础知识

Flash Player 9 和更高版本,Adobe AIR 1.0 和更高版本

XML 是一种表示结构化信息的标准方法,以使计算机能够方便地使用此类信息,并且人们可以非常方便地编写和理解这些信息。XML 是 eXtensible Markup Language(可扩展标记语言)的缩写。www.w3.org/XML/ 上提供了 XML 标准。

XML 提供了一种简便的标准方法对数据进行分类,以使其更易于读取、访问以及处理。XML 使用类似于 HTML 的树结构和标签结构。以下是一个简单的 XML 数据示例:

<song> 
    <title>What you know?</title> 
    <artist>Steve and the flubberblubs</artist> 
    <year>1989</year> 
    <lastplayed>2006-10-17-08:31</lastplayed> 
</song>

XML 数据也可能会比较复杂,其中包含嵌套在其他标签中的标签以及属性和其他结构组件。以下是一个比较复杂的 XML 数据示例:

<album> 
    <title>Questions, unanswered</title> 
    <artist>Steve and the flubberblubs</artist> 
    <year>1989</year> 
    <tracks> 
        <song tracknumber="1" length="4:05"> 
            <title>What do you know?</title> 
            <artist>Steve and the flubberblubs</artist> 
            <lastplayed>2006-10-17-08:31</lastplayed> 
        </song> 
        <song tracknumber="2" length="3:45"> 
            <title>Who do you know?</title> 
            <artist>Steve and the flubberblubs</artist> 
            <lastplayed>2006-10-17-08:35</lastplayed> 
        </song> 
        <song tracknumber="3" length="5:14"> 
            <title>When do you know?</title> 
            <artist>Steve and the flubberblubs</artist> 
            <lastplayed>2006-10-17-08:39</lastplayed> 
        </song> 
        <song tracknumber="4" length="4:19"> 
            <title>Do you know?</title> 
            <artist>Steve and the flubberblubs</artist> 
            <lastplayed>2006-10-17-08:44</lastplayed> 
        </song> 
    </tracks> 
</album>

请注意,此 XML 文档中包含其他完整 XML 结构(如 song 标签及其子标签)。此文档还说明了其他 XML 结构,如属性(song 标签中的 tracknumberlength)以及包含其他标签而不是包含数据的标签(如 tracks 标签)。

XML 快速入门

如果您没有或几乎没有 XML 方面的经验,您可以阅读下面对 XML 数据的最常见特性的简要说明。XML 数据是以纯文本格式编写的,并使用特定语法将信息组织为结构化格式。通常,将一组 XML 数据称为“XML 文档”。在 XML 格式中,通过分层结构将数据组织到元素(可以是单个数据项,也可以是其他元素的容器)中。每个 XML 文档将一个元素作为顶级项目或主项目;此根元素内可能会包含一条信息,但更可能会包含其他元素,而这些元素又包含其他元素,依此类推。例如,以下 XML 文档包含有关音乐唱片的信息:

<song tracknumber="1" length="4:05"> 
    <title>What do you know?</title> 
    <artist>Steve and the flubberblubs</artist> 
    <mood>Happy</mood> 
    <lastplayed>2006-10-17-08:31</lastplayed> 
</song>

每个元素都是用一组标签来区分的,即元素名称括在尖括号(小于号和大于号)中。开始标签(指示元素的开头)包含元素名称:

<title>

结束标签(标记元素的结尾)在元素名称前面包含一个正斜杠:

</title>

如果元素不包含任何内容,则会将其编写为一个空元素(有时称为自结束元素)。在 XML 中,以下元素:

<lastplayed/>

与下面的元素完全相同:

<lastplayed></lastplayed>

除了在开始和结束标签之间包含的元素内容外,元素还可以包含在元素开始标签中定义的其他值(称为属性)。例如,以下 XML 元素定义一个名为 length 且值为 "4:19" 的属性:

<song length="4:19"></song>

每个 XML 元素都包含内容,这可以是单个值、一个或多个 XML 元素或没有任何内容(对于空元素)。

了解有关 XML 的详细信息

要了解有关使用 XML 的详细信息,请参阅额外的一些书籍和资源以了解有关 XML 的详细信息,其中包括以下 Web 站点:

用于使用 XML 的 ActionScript 类

ActionScript 3.0 包含一些用于使用 XML 结构化信息的类。下面列出了两个主类:

  • XML:表示单个 XML 元素,它可以是包含多个子元素的 XML 文档,也可以是文档中的单值元素。

  • XMLList:表示一组 XML 元素。当具有多个“同级”(在 XML 文档层次中位于相同级别,并且包含在相同父级中)的 XML 元素时,将使用 XMLList 对象。例如,XMLList 实例是使用以下一组 XML 元素(可能包含在 XML 文档中)的最简便方法:

    <artist type="composer">Fred Wilson</artist> 
    <artist type="conductor">James Schmidt</artist> 
    <artist type="soloist">Susan Harriet Thurndon</artist>

对于涉及 XML 命名空间的更高级用法,ActionScript 还包含 Namespace 和 QName 类。有关详细信息,请参阅使用 XML 命名空间

除了用于使用 XML 的内置类外,ActionScript 3.0 还包含一些运算符,它们提供了用于访问和使用 XML 数据的特定功能。这种使用这些类和运算符来使用 XML 的方法称为 ECMAScript for XML (E4X),它是由 ECMA-357 第 2 版规范定义的。

重要概念和术语

以下参考列表包含进行 XML 处理例程编程时会遇到的重要术语:

元素
XML 文档中的单个项目,它被标识为开始标签和结束标签之间包含的内容(包括标签)。XML 元素可以包含文本数据或其他元素,也可以为空。

空元素
不包含任何子元素的 XML 元素。通常,将空元素编写为自结束标签(如 <element/>)。

文档
单个 XML 结构。XML 文档可以包含任意数量的元素(或者仅包含单个空元素);但是,XML 文档必须具有一个顶级元素,该元素包含文档中的所有其他元素。

节点
XML 元素的另一个名称。

属性
与元素关联的命名值,它以 attributename="value" 格式写入到元素的开始标签中,而不是编写为嵌套在元素内的单独子元素。