包 | 顶级 |
类 | public final class QName |
继承 | QName Object |
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
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 处理标准,该标准在 ECMAScript for XML (E4X) 规范(ECMA-357 第 2 版)中定义。
限定标识符的计算结果为 QName 对象。如果指定了 XML 元素的 QName 对象而未标识命名空间,则将关联的 QName 对象的 uri
属性设置为全局默认命名空间。如果指定了 XML 属性的 QName 对象而未标识命名空间,则将 uri
属性设置为空字符串。
了解详细信息
相关 API 元素
属性 | 由以下参数定义 | ||
---|---|---|---|
constructor : Object
对类对象或给定对象实例的构造函数的引用。 | Object | ||
localName : String [只读]
QName 对象的局部名称。 | QName | ||
uri : String [只读]
QName 对象的统一资源标识符 (URI)。 | QName |
方法 | 由以下参数定义 | ||
---|---|---|---|
创建一个 QName 对象,该对象是另一个 QName 对象的副本。 | QName | ||
使用 Namespace 对象中的 URI 和 QName 对象中的 localName 创建一个 QName 对象。 | QName | ||
表示对象是否已经定义了指定的属性。 | Object | ||
表示 Object 类的实例是否在指定为参数的对象的原型链中。 | Object | ||
表示指定的属性是否存在、是否可枚举。 | Object | ||
设置循环操作动态属性的可用性。 | Object | ||
返回此对象的字符串表示形式,其格式设置遵守区域设置特定的约定。 | Object | ||
返回一个包含 URI 的字符串和 QName 对象的局部名称(用“::”分隔)。 | QName | ||
返回 QName 对象。 | QName |
localName | 属性 |
uri | 属性 |
QName | () | 构造函数 |
public function QName(qname:QName)
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9 |
创建一个 QName 对象,该对象是另一个 QName 对象的副本。如果传递给构造函数的参数是 QName 对象,则将创建 QName 对象的一个副本。如果该参数不是 QName 对象,则将其转换为字符串并分配给新 QName 实例的 localName
属性。如果参数是 undefined
或未指定,则将创建 localName
属性设置为空字符串的新 QName 对象。
注意:因为每种形式接受不同的参数,所以此类显示两个构造函数项。根据传递的参数类型和数量的不同(由每一项详细定义),此构造函数具有不同的行为。ActionScript 3.0 不支持方法或构造函数重载。
参数qname:QName — 要复制的 QName 对象。任何其他类型的对象都将转换为指定给新 QName 对象的属性 localName 的字符串。
|
QName | () | 构造函数 |
public function QName(uri:Namespace, localName:QName)
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9 |
使用 Namespace 对象中的 URI 和 QName 对象中的 localName
创建一个 QName 对象。如果任一参数不是预期的数据类型,则该参数将转换为字符串并分配给新 QName 对象的相应属性。例如,如果两个参数均为字符串,则将返回 uri
属性设置为第一参数且 localName
属性设置为第二参数的新 QName 对象。换言之,使用以下数据类型以及其他数据类型的 uri 和 localName 参数组合都是构造函数的有效形式:
QName (uri:Namespace, localName:String); QName (uri:String, localName: QName); QName (uri:String, localName: String);
如果将 null
传递给 uri
参数,则新 QName 对象的 uri
属性将设置为 null
。
注意:因为每种形式接受不同的参数,所以此类显示两个构造函数项。根据传递的参数类型和数量的不同(由每一项详细定义),此构造函数具有不同的行为。ActionScript 3.0 不支持方法或构造函数重载。
参数uri:Namespace — 将从其复制 uri 值的 Namespace 对象。任何其他类型的参数将转换为字符串。
| |
localName:QName — 将从其复制 localName 值的 QName 对象。任何其他类型的参数将转换为字符串。
|
toString | () | 方法 |
valueOf | () | 方法 |
- 创建 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" } } } }
Tue Jun 12 2018, 11:04 AM Z