QName

简介: 包 顶级 类 public final class QName 继承 QName Object 语言版本 :  ActionScript 3.0 Player 版本 :  Flash Player 9 QName 对象表示 XML 元素和属性的限定名。
顶级
public final class QName
继承 QName InheritanceObject
语言版本 :  ActionScript 3.0
Player 版本 :  Flash Player 9
QName 对象表示 XML 元素和属性的限定名。 每个 QName 对象都具有一个本地名称和一个命名空间统一资源标识符 (URI)。 命名空间 URI 的值为 null 时,QName 对象可与任意命名空间匹配。 使用 QName 构造函数创建新的 QName 对象,该对象可以是另一个 QName 对象的副本,也可以是带有来自 Namespace 对象的 uri 和来自 QName 对象的 localName 的新 QName 对象。

特定于 E4X 的方法可以交替使用 QName 对象和字符串。 E4X 方法位于 QName、Namespace、XML 和 XMLList 类中。 这些 E4X 方法,既可以获取字符串,也可以获取 QName 对象。 这种互换性说明了命名空间如何支持诸如 XML.child() 方法的使用。

QName 类(与 XML、XMLList 和 Namespace 类一起)可实现强大的 XML 处理标准,该标准在 XML (E4X) 规范(ECMA-357 第 2 版)的 ECMAScript 中定义。

限定标识符的计算结果为 QName 对象。 如果指定了 XML 元素的 QName 对象而未标识命名空间,则将关联的 QName 对象的 uri 属性设置为全局默认命名空间。 如果指定了 XML 属性的 QName 对象而未标识命名空间,则将 uri 属性设置为空字符串。

QNameExample.as

下面的示例说明如何创建 QName 实例,并使用它选择 XML 元素。 下面说明了创建 QName 的两种方法:
  1. 创建 Namespace 实例,然后将其用作 QName 构造函数的输入。 如果稍后要将 Namespace.prefix 属性用作其它目的,则此方法是最佳方法。
  2. 使用 QName 构造函数中 uri 参数的简单字符串值创建 QName 实例。

此代码将执行以下操作:

  1. 定义一个 XML 变量,名为 rssXML
  2. 创建一个新 Namespace 对象,其前缀为 dc
  3. 创建新的 QName 对象,方法是使用 Namespace 对象和本地名称 creator
  4. 调用 showDescendants() 方法,该方法使用 XML.descendants() 方法获取一个 XMLList 实例,其中包含限定名称与给定的 QName 实例相匹配的所有后代元素。
  5. 显示列表中每个元素的限定名称和文本值(使用 for each 循环)。
  6. 使用 uri 参数的字符串值和局部名称 date 创建另一个 QName 对象。
  7. 再次调用 showDescendants() 方法以显示后代元素的名称和文本值。
package
{
    import flash.display.Sprite;
    
    public class QNameExample extends Sprite
    {
        public function QNameExample()
        {
            var rssXML:XML =  <rdf:RDF
              xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
              xmlns="http://purl.org/rss/1.0/"
              xmlns:dc="http://purl.org/dc/elements/1.1/">
              <channel rdf:about="http://www.xml.com/cs/xml/query/q/19">
                <title>Test RSS</title>
                <link>http://www.adobe.com/</link>
                <description>This is a test RSS document.</description>
                <language>en-us</language>
                <items>
                  <rdf:Seq>
                <rdf:li rdf:resource="http://www.adobe.com/devnet/flash/"/>
                <rdf:li rdf:resource="http://www.adobe.com/devnet/flex/"/>
                  </rdf:Seq>
                </items>
              </channel>
              <item rdf:about="http://www.adobe.com/devnet/flash/">
                <title>Flash Developer Center</title>
                <link>http://www.adobe.com/devnet/flash/</link>
                <description>Welcome to the Flash Developer Center</description>
                <dc:creator>Adobe</dc:creator>
                <dc:date>2005-08-08</dc:date>    
              </item>
              <item rdf:about="http://www.adobe.com/devnet/flex/">
                <title>Flex Developer Center</title>
                <link>http://www.adobe.com/devnet/flex/</link>
                <description>Welcome to the Flex Developer Center</description>
                <dc:creator>Adobe</dc:creator>
                <dc:date>2005-10-16</dc:date>    
              </item>
            </rdf:RDF>;
            
            var dcNamespace:Namespace = new Namespace("dc", "http://purl.org/dc/elements/1.1/");
            var creatorQName:QName = new QName(dcNamespace, "creator");
            trace(creatorQName.uri); // http://purl.org/dc/elements/1.1/
            trace(creatorQName.localName); // creator
            
            showDescendants(rssXML, creatorQName);
            
            var dateQName:QName = new QName("http://purl.org/dc/elements/1.1/", "date");
            trace(dateQName.uri); // http://purl.org/dc/elements/1.1/
            trace(dateQName.localName); // date
            
            showDescendants(rssXML, dateQName);
        }
        
        public function showDescendants(xmlData:XML, qualifiedName:QName):void
        {
            var decendantList:XMLList = xmlData.descendants(qualifiedName);
            
            for each (var element:XML in decendantList)
            {
                trace(element.name()); // the fully qualified name, 
                                       // like "http://purl.org/dc/elements/1.1/::creator"
                trace(element); // the simple text value of each element, like "Adobe"
            }                
        }
    }
}
相关文章
|
存储 JSON 资源调度
10分钟带你从0到1搭建monorepo 工程化项目(一)
前言 大家好,我是Fly哥, 之前写博客的仓库,还是用的原生的html 和js 也没有引入 ts , 和一些工程化的东西, 所以自己重新搭建了一套前端项目架构 基于 lerna + yarn 的 monrepo的仓库, 主要是后面会学习输出的一些东西, 整个架子先搭建起来。 2d 和 3d 公共 util 的封装 个人 npm 包的发布 (rollup) 2d react 项目 搭建(vite) 3d react 项目 搭建 (webpack) 搭建一套基于webpack 5 的cli 每个项目都有一些特定的依赖, 但是也会有一些相同的依赖。比如eslint、 babel 的一些基础配置,
10分钟带你从0到1搭建monorepo 工程化项目(一)
|
存储 容器
Collectors.groupingBy分组后乱序问题
Collectors.groupingBy分组后乱序问题
|
XML Oracle Java
JDK11的重要新特性
JDK11的重要新特性
|
机器学习/深度学习 人工智能 算法
阿里云工程师用机器学习破解雾霾成因
日前,一位署名为“傲海”的阿里云工程师在云栖社区发布了一篇分析北京雾霾成因的文章。作者通过机器学习算法分析发现,北京重度雾霾天的出现同大气中二氧化氮的含量存在强相关性。 人们很早就知道硫酸盐是雾霾形成的重要原因。住宅及发电厂的燃煤释放大量二氧化硫,随后转化为硫酸颗粒造成污染。但困扰科学家的是,二氧
9338 0
on duplicate key update
INSERT INTO issue_change(project_id, add_date, change_amount, base_line, gmt_create , gmt_modified) SELECT p.
981 0
|
3天前
|
云安全 人工智能 安全
AI被攻击怎么办?
阿里云提供 AI 全栈安全能力,其中对网络攻击的主动识别、智能阻断与快速响应构成其核心防线,依托原生安全防护为客户筑牢免疫屏障。
|
13天前
|
域名解析 人工智能
【实操攻略】手把手教学,免费领取.CN域名
即日起至2025年12月31日,购买万小智AI建站或云·企业官网,每单可免费领1个.CN域名首年!跟我了解领取攻略吧~
|
7天前
|
安全 Java Android开发
深度解析 Android 崩溃捕获原理及从崩溃到归因的闭环实践
崩溃堆栈全是 a.b.c?Native 错误查不到行号?本文详解 Android 崩溃采集全链路原理,教你如何把“天书”变“说明书”。RUM SDK 已支持一键接入。
509 203