在XML文档中,有一部分数据是以节点属性的方式存在的。在使用XML对象过程中,除了使用节点之外,对于XML节点属性的访问也由为重要。ActionScript 3.0同样提供了一系列对于XML属性的访问方法。
在ActionScript 3.0中,最基本的访问XML节点属性的方式就是使用“@”操作符。可以通过“@”操作符加属性名称的方式直接访问节点的属性。如下代码所示。
var flexXML:XML=<RIA>
<FlashPlayer version=”9”>
<Flash version=”9”>Flash CS3</Flash>
<Flex version=”3”>Flex3</Flex>
</FlashPlayer>
<Ajax>
<GoogleAjax>GoogleAjax1.0</GoogleAjax>
</Ajax>
</RIA>
trace(flexXML.FlashPlayer.@version); //输出“9”
trace(flexXML.FlashPlayer.Flash.@version); //输出“9”
trace(flexXML.FlashPlayer.Flex.@version); //输出“3”
在访问属性的时候也可以通过“*”操作符与“@”组合使用进行属性的访问。“*”操作符代表所有的属性。使用方式如下代码所示。
var flexXML:XML=<RIA>
<FlashPlayer version=”9” company=”adobe” year=”2007”>
<Flash version=”9”>Flash CS3</Flash>
<Flex version=”3”>Flex3</Flex>
</FlashPlayer>
<Ajax>
<GoogleAjax>GoogleAjax1.0</GoogleAjax>
</Ajax>
</RIA>
trace(flexXML.FlashPlayer.@*.toXMLString());
由于访问了多个属性,所以会输出多个值。上面代码的输出值如下所示。
9
adobe
2007
与访问节点一样,也可以通过XML类内建的函数进行属性的访问。ActionScript 3.0中,XML类提供了attribute和attributes两个方法进行对属性的访问。使用attribute的方式进行访问时,也可以通过“*”操作符进行对多个属性的访问。如下代码所示。
var flexXML:XML=<RIA>
<FlashPlayer version=”9” company=”adobe” year=”2007”>
<Flash version=”9”>Flash CS3</Flash>
<Flex version=”3”>Flex3</Flex>
</FlashPlayer>
<Ajax>
<GoogleAjax>GoogleAjax1.0</GoogleAjax>
</Ajax>
</RIA>
trace(flexXML.FlashPlayer.attribute(“version”)); //输出“9”
trace(flexXML.FlashPlayer.attribute(“*”));
通过指定属性名的方式进行对属性的访问时,可以动态的决定要访问的属性。上面代码输出的结果如下所示。
9
9
adobe
2007
对于属性的访问,也可以采用“[]”操作符访问属性。采用“[]”操作符可以有两种书写方式。具体使用方式如下代码所示。
var flexXML:XML=<RIA>
<FlashPlayer version=”9” company=”adobe” year=”2007”>
<Flash version=”9”>Flash CS3</Flash>
<Flex version=”3”>Flex3</Flex>
</FlashPlayer>
<Ajax>
<GoogleAjax>GoogleAjax1.0</GoogleAjax>
</Ajax>
</RIA>
trace(flexXML.FlashPlayer[“@version”]); //输出“9”
trace(flexXML.FlashPlayer.@[“company”]); //输出“adobe”