Please note, this is a STATIC archive of website developer.mozilla.org from 03 Nov 2016, cach3.com does not collect or store any user information, there is no "phishing" involved.

Descendants and Filters

访问后代节点

很多时候,你感兴趣的节点往往不是 XML 根节点的子节点,而是嵌套在多层下的后代节点。你可以使用 .. 操作符访问任意深度的节点,或者使用 descendants 性质。例如:

var element = <pets>
                <dogs>
                  <fido color="red"/>
		  <spike color="blue"/>
		</dogs>
              </pets>;
element..fido.@color = "green";
element..spike.@color = "purple";

两只宠物狗的颜色都做了改变。

点(.)操作符的所有规则都适用于 .. 操作符。那就是说,如果有多个请求的类型,就会返回一个 XML 后代的列表。星号(*)选择器会返回 XML 列表的所有后代。

过滤器

在很多情况下,尤其是用 * 选择器时,你并不想要处理 . 或 .. 操作符返回的所有节点。为了只处理其中特定的子集,可以将筛选条件放到 . 操作符后面的圆括号里。

var element = <dogs>
                <fido color="brown"/>
                <spike color="black"/>
                <killer color="brown"/>
              </dogs>;
var list = element.*.(@color == "brown");

本来,element.* 返回一个包含三只狗的列表。但其中只有 fido 和 killer 的颜色是褐色的。因此,该过来条件创建了一个只包含 fido 和 killer 的列表。

文档标签和贡献者

 此页面的贡献者: ziyunfei, redraiment
 最后编辑者: ziyunfei,