当前位置: 首页 > news >正文

QName

包 顶级
类 public final class QName
继承 QName Inheritance Object
语言版本 : 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 的两种方法:
创建 Namespace 实例,然后将其用作 QName 构造函数的输入。 如果稍后要将 Namespace.prefix 属性用作其它目的,则此方法是最佳方法。
使用 QName 构造函数中 uri 参数的简单字符串值创建 QName 实例。
此代码将执行以下操作:

定义一个 XML 变量,名为 rssXML。
创建一个新 Namespace 对象,其前缀为 dc。
创建新的 QName 对象,方法是使用 Namespace 对象和本地名称 creator。
调用 showDescendants() 方法,该方法使用 XML.descendants() 方法获取一个 XMLList 实例,其中包含限定名称与给定的 QName 实例相匹配的所有后代元素。
显示列表中每个元素的限定名称和文本值(使用 for each 循环)。
使用 uri 参数的字符串值和局部名称 date 创建另一个 QName 对象。
再次调用 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"
        }                
    }
}

}
本文转自jiahuafu博客园博客,原文链接http://www.cnblogs.com/jiahuafu/archive/2011/02/24/1963414.html如需转载请自行联系原作者

jiahuafu

相关文章:

  • 浅议tomcat与classloader
  • Java中的匿名内部类
  • 移动端点击作弊与激活作弊的现象与预警
  • IT人员的职业生涯规划
  • 电话号码校验
  • /var/spool/postfix/maildrop 下有大量文件
  • kubernetes test-infra
  • 关于Mysql查看某个ip连接数及删除掉这个ip连接的方法(也可以进行mysql锁表解锁)...
  • Impala数据处理(加载和存储)
  • iOS滤镜实现之LOMO(美图秀秀经典LOMO)
  • Storm概念学习系列之storm简介
  • em和px比较
  • CISCO 3750 不能修改接口mtu?
  • some code of c
  • __stdcall、__cdcel和__fastcall
  • 9月CHINA-PUB-OPENDAY技术沙龙——IPHONE
  • angular组件开发
  • ES6 ...操作符
  • HTTP--网络协议分层,http历史(二)
  • JavaScript设计模式之工厂模式
  • Java-详解HashMap
  • Spring思维导图,让Spring不再难懂(mvc篇)
  • 阿里云容器服务区块链解决方案全新升级 支持Hyperledger Fabric v1.1
  • 分享一份非常强势的Android面试题
  • 构建工具 - 收藏集 - 掘金
  • 好的网址,关于.net 4.0 ,vs 2010
  • 欢迎参加第二届中国游戏开发者大会
  • 坑!为什么View.startAnimation不起作用?
  • “十年磨一剑”--有赞的HBase平台实践和应用之路 ...
  • #define 用法
  • #Linux杂记--将Python3的源码编译为.so文件方法与Linux环境下的交叉编译方法
  • (3)Dubbo启动时qos-server can not bind localhost22222错误解决
  • (二)hibernate配置管理
  • (十五)devops持续集成开发——jenkins流水线构建策略配置及触发器的使用
  • .chm格式文件如何阅读
  • .NET C#版本和.NET版本以及VS版本的对应关系
  • .net core Swagger 过滤部分Api
  • .NET Core 通过 Ef Core 操作 Mysql
  • .NET Core 网络数据采集 -- 使用AngleSharp做html解析
  • .NET core 自定义过滤器 Filter 实现webapi RestFul 统一接口数据返回格式
  • .Net Core缓存组件(MemoryCache)源码解析
  • .NET Standard 的管理策略
  • .net websocket 获取http登录的用户_如何解密浏览器的登录密码?获取浏览器内用户信息?...
  • .NET 程序如何获取图片的宽高(框架自带多种方法的不同性能)
  • .NET 的程序集加载上下文
  • .NET 跨平台图形库 SkiaSharp 基础应用
  • .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args
  • .NET/C# 在 64 位进程中读取 32 位进程重定向后的注册表
  • .Net+SQL Server企业应用性能优化笔记4——精确查找瓶颈
  • @serverendpoint注解_SpringBoot 使用WebSocket打造在线聊天室(基于注解)
  • [ 云计算 | Azure 实践 ] 在 Azure 门户中创建 VM 虚拟机并进行验证
  • [2024] 十大免费电脑数据恢复软件——轻松恢复电脑上已删除文件
  • [Angularjs]asp.net mvc+angularjs+web api单页应用
  • [Angularjs]asp.net mvc+angularjs+web api单页应用之CRUD操作
  • [C++]C++入门--引用