E4X教程[2] - 访问 XML 子节点

简介: 访问 XML 子节点 JavaScript 对象通常使用 . 或 [] 来设置性质。 var a = {}; a.foo = 1; a["bar"] = 2; 在 E4X 中,点(.)和中括号([])操作符用来访问 E4X 元素的子节点。 var element1 = <foo> <bar/>

访问 XML 子节点

JavaScript 对象通常使用 . 或 [] 来设置性质。

var a = {}; a.foo = 1; a["bar"] = 2;

在 E4X 中,点(.)和中括号([])操作符用来访问 E4X 元素的子节点。

var element1 = <foo> <bar/> </foo>; var element2 = <baz/>; element1.bar.appendChild(element2); element1["bar"].appendChild(<quux/>);

往 element1 中的 bar 节点添加子节点,生成如下 XML 文档:

<foo> <bar> <baz/> <quux/> </bar> </foo>

但是要注意,给一个不存在的子元素赋值会创建这个元素。

var element1 = <foo/> element1.bar = 1;

生成

<foo> <bar>1</bar> </foo>

如果子节点已经存在,点(.)操作符允许你更改它的值。

var elem = <foo> <bar>1</bar> </foo> elem.bar = 2;

会将原来的值 1 改成 2。

你可以用 delete 命令删除一个子节点。

var elem = <foo> <bar/> <baz/> </foo> delete elem.bar;

只剩下

<foo> <baz/> </foo>

点(.)操作符还能用于替换特定的子节点。

var elem1 = <foo> <bar/> </foo>; var elem2 = <red> <blue/> </red>; elem1.bar = elem2;

用 elem2 的全部内容替换 <bar/> 元素。

<foo> <red> <blue/> </red> <foo>

XML 列表

许多时候,一个元素会有两个或多个相同类型的子节点。在这种情况下,访问 foo.bar 将返回一个XML 列表对象,包含所有类型为“bar”的子节点。注意:在使用 . 操作符时,判断它是返回单个元素还是一个 XML 列表,这是你的责任。在返回这些性质时,E4X 的行为并没有区别。

XML 列表的行为就像是一个数组。

var element = <foo> <bar baz="1">red</bar> <bar baz="2">blue</bar> </foo>; var list = element.bar; list.length(); // returns 2 list[0]; // the first bar element list[1]; // the second bar element

需要注意,这个列表时可修改的,在它上面做的修改都会反映到原始的 XML 文档中。

list[1] = "green";

XML 文档被修改为:

<foo> <bar baz="1">red</bar> <bar baz="2">green</bar> </foo>

特殊类型的节点

XML 对象有一些方法可以访问 XML 列表中的通用类型节点。

var a = <foo> Some text <bar>not text</bar> More text </foo>; var list = a.text(); list.length(); // returns 2 list[0]; // returns " Some text " list[1]; // returns " More text "

你同样可以访问注释节点:

XML.ignoreComments = false; var a = <foo> Some <!-- abc --> text </foo>; var comments = a.comments(); alert(comments[0]); // Returns <!-- abc -->

星号(*)选择器将返回 XML 列表的所有子节点。

var a = <foo> <bar/> <baz/> </foo>; var list = a.*; list.length(); // returns 2

元素属性

很多 XML 元素都有赋有特定值的属性。例如:

<pets> <dog color="brown">Fido</dog> <cat color="grey">Fluffy</cat> </pets>

E4X 运行你用 .@ 操作符来反问这些特定元素的属性。最基本的情况如下例所示:

var element = <foo bar="1"/> element.@bar = 2;

它将生成:

<foo bar="2"/>


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

联系方式

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

目录
相关文章
|
1月前
|
XML 存储 数据格式
|
3月前
|
XML 存储 JavaScript
XML DOM - 访问节点
XML DOM 允许你访问XML文档中的每一个节点。你可以通过三种方式进行节点访问:使用 `getElementsByTagName()` 方法、循环遍历节点树或通过节点间的关系进行导航。`getElementsByTagName()` 返回一个节点列表,即节点的数组形式。示例代码展示了如何将 &quot;books.xml&quot; 文件加载到 `xmlDoc` 中,并随后在变量 `x` 中存储这些信息。
|
4月前
|
XML 存储 JavaScript
XML DOM - 访问节点
通过 DOM, 可全面访问 XML 文档的节点。实现这一目标有 3 种方法: 1. 使用 `getElementsByTagName()` 方法, 2. 遍历节点树, 3. 利用节点间的关联进行导航。 `getElementsByTagName()` 返回一个 Node List, 即节点数组。
|
4月前
|
XML 存储 JavaScript
XML DOM - 访问节点
通过 DOM, 可全面访问 XML 文档的节点。实现这一目标有 3 种方法: 1. 使用 `getElementsByTagName()` 方法, 2. 遍历节点树, 3. 利用节点间的关联进行导航。 `getElementsByTagName()` 返回一个 Node List, 即节点数组。示例代码加载 &quot;books.xml&quot; 到 xmlDoc 并存储...
|
4月前
|
XML 存储 JavaScript
XML DOM - 访问节点
通过 DOM, 可全面访问 XML 文档的节点。实现这一目标有 3 种方法: - 使用 `getElementsByTagName()` 方法, - 循环遍历节点树, - 利用节点间关系进行导航。 `getElementsByTagName()` 返回一个 Node List,即一种节点数组形式。示例代码通过 `loadXMLDoc()` 函数加载 &quot;books.xml&quot; 文件到 `xmlDoc` 变量中,并随后在变量 `x` 中保存所需节点信息。
|
4月前
|
XML 存储 JavaScript
XML DOM - 访问节点
`getElementsByTagName()` 方法用于获取 XML 文档中指定标签名的所有节点,返回一个节点列表,类似数组。可以循环遍历节点树或利用节点关系导航来访问每个节点。例如,加载 &quot;books.xml&quot; 到 xmlDoc 后,变量 x 存储了所有 `&lt;book&gt;` 节点的列表。
|
4月前
|
XML 存储 JavaScript
XML DOM - 访问节点
DOM 允许访问 XML 文档的每个节点, 主要通过三种方式: 1. 使用 `getElementsByTagName()` 方法; 2. 循环遍历节点树; 3. 利用节点间关系导航。 此方法返回一个节点列表(Node List),实质为节点数组。示例代码加载 &quot;books.xml&quot; 到 `xmlDoc`,并存储结果到变量 `x`。
|
4月前
|
XML 存储 JavaScript
XML DOM - 访问节点
`getElementsByTagName()` 方法用于访问XML文档中的特定节点。节点可按三种方式获取:使用该方法、遍历节点树或导航节点关系。`getElementsByTagName()` 返回一个节点列表,类似数组,可用于处理多个匹配节点。例如,代码加载 &quot;books.xml&quot; 到 `xmlDoc`,再将结果保存到变量 `x`。
|
4月前
|
XML 存储 JavaScript
XML DOM - 访问节点
通过 DOM,您能够访问 XML 文档中的每个节点。
|
4月前
|
XML 存储 JavaScript
XML DOM - 访问节点
DOM 允许访问 XML 文档的每个节点, 主要通过三种方式: 1. 使用 `getElementsByTagName()` 方法; 2. 循环遍历节点树; 3. 利用节点间关系导航。`getElementsByTagName()` 返回节点列表, 类似数组结构。示例代码加载 &quot;books.xml&quot; 到 xmlDoc, 并存储结果于变量 x 中。