E4X教程[4] - 命名空间

简介: E4X 与 命令空间 通常情况下,XML 文档包含来自多种命令空间的元素。你可以通过声明为你的 E4X 对象设置默认的命名空间。 default xml namespace = "http://www.w3.org/1999/xhtml"; 通过重复的声明,你可以随时更改相同范围内 E4X 的命名空间。 default xml namespace = "http://www.w3.

E4X 与 命令空间

通常情况下,XML 文档包含来自多种命令空间的元素。你可以通过声明为你的 E4X 对象设置默认的命名空间。

default xml namespace = "http://www.w3.org/1999/xhtml";

通过重复的声明,你可以随时更改相同范围内 E4X 的命名空间。

default xml namespace = "http://www.w3.org/1999/xhtml"; var a = <p>Some text</p>; default xml namespace = "http://www.mozilla.org/keymaster/gat...re.is.only.xul"; var b = <label>More text</label>; a.appendChild(b);

得出

<p xmlns="http://www.w3.org/1999/xhtml"> Some text <label xmlns="http://www.mozilla.org/keymaster/gat...re.is.only.xul">More text</label> </p>

name()

在 XML 对象上调用 name() 会返回一个 QName 对象(Qualified Name)。QName 在支持 E4X 的 JavaScript 实现中是一个全局的构造函数。QName 对象有两个特别重要的属性:localName 返回元素的名字,且没有任何命名空间前缀;uri 返回元素所在的命名空间。

var info = a.name(); info.localName; // returns 'p'. info.uri; // returns "http://www.w3.org/1999/xhtml"

没有在任何命令空间的元素,他们的 uri 是一个空字符串。

Namespace 全局构造函数和 QName 非常相似。Namespace 的不同之处是 toString 方法,以及 Namespace 用 prefix 属性来代替 localName 属性[1]

关于 E4X 的命名空间,更多的内容请参见 Processing XML with E4X

译者注

  1. 原文中没有详细讲,获得 Namespace 对象的方法是调用 .namespace()。其中 QName 的 toString 方法会输出 Namespace::name 的形式,而 Namespace 的 toString 只会输出命名空间。

为方便其他朋友提问和指正,转载是请保持文章完整性,并以超链接形式注明原始作者“redraiment ”和主站点 地址,谢谢。

联系方式

我的邮箱,欢迎来信(redraiment@gmail.com
我的CSDN博客(梦婷轩 ):http://blog.csdn.net/redraiment
我的百度空间(梦婷轩 ):http://hi.baidu.com/redraiment

目录
相关文章
|
8月前
|
C++
C++命名空间学习应用案例
C++中的命名空间示例:通过`my_namespace`防止命名冲突,包含`print_message()`函数,在`main()`中调用时需加上命名空间前缀`my_namespace::`。
50 3
|
8月前
|
C++
【C++ 命名空间】C++ 命名空间与嵌套命名空间入门指南
【C++ 命名空间】C++ 命名空间与嵌套命名空间入门指南
212 0
|
7月前
|
人工智能 安全 编译器
【C++入门】—— C++入门 (上)_命名空间
【C++入门】—— C++入门 (上)_命名空间
71 2
|
8月前
|
域名解析 程序员 C++
C++命名空间
`C++`中的命名空间用于分割全局作用域,减少命名冲突。定义命名空间如`namespace expression {...}`,可使用`using`运算符或`using namespace`指令引用。案例展示如何在命名空间`Person`内定义变量和函数。注意:命名应具描述性,头文件中命名空间放预处理指令后,避免全局变量和过度使用`using`。命名冲突时可设命名空间别名。
39 2
|
8月前
|
编译器 C++
C++入门(命名空间)
C++入门(命名空间)
|
8月前
应用命名空间和实例命名空间
【2月更文挑战第15天】应用命名空间和实例命名空间。
53 2
|
8月前
|
设计模式 Java 编译器
【C++入门到精通】 C++入门—命名空间
前面我们学习了C语言,并且知道了C语言的基础语法与用途。接下来一段时间我们会再来学习一下基于C语言并且根据C语言改造的一门新的语言—C++ 
86 4
|
编译器 C语言 C++
【C++】入门 --- 命名空间(一)
【C++】入门 --- 命名空间(一)
70 0
|
C++
【C++】入门 --- 命名空间(二)
【C++】入门 --- 命名空间(二)
82 0
|
算法 编译器 C语言
C++最简单的程序和命名空间
C++最简单的程序和命名空间