1、可以使用 + 和 += 运算符连接 XMLList 对象:
var x1:XML = <a>test1</a>
var x2:XML = <b>test2</b>
var xList:XMLList = x1 + x2;
xList += <c>test3</c>
这将对 XMLList 对象 xList 进行如下设置:
<a>test1</a>
<b>test2</b>
<c>test3</c>
2、
var myXML:XML =
<order>
<item id='1'>
<menuName>burger</menuName>
<price>3.95</price>
</item>
<item id='2'>
<menuName>fries</menuName>
<price>1.45</price>
</item>
</order>
包含了一些直观运算符 (如点 (.) 和属性标识符 (@) 运算符还有一种是两点(..)运算符,它是读取所有子孙某个结点的),还可以使用(*)读取所有,如(
xxx.@*)用于访问 XML 中的属性(点是访问子结点,@是本结点中的属性):
trace(myXML.item[0].menuName); // Output: burger
trace(myXML.item.(@id==2).menuName); // Output: fries
trace(myXML.item.(menuName=="burger").price); // Output: 3.95
再说一点
(.)后只能跟xml标签的一个属性,在不使用[ ]和@的情况下不能加变量
3、
使用 @ 符号 (属性标识符运算符)可以访问 XML 或 XMLList 对象的属性,如下面的代码所示:
var employee:XML =
<employee id="6401" code="233">
<lastName>Wu</lastName>
<firstName>Erin</firstName>
</employee>;
trace(employee.@id); // 6401
使用 @ 和 . 运算符不仅可以读取数据,还可以分配数据,如下所示:
myXML.item[0].menuName="regular burger";
myXML.item[1].menuName="small fries";
myXML.item[2].menuName="medium cola";
myXML.item.(menuName=="regular burger").@quantity = "2";
myXML.item.(menuName=="small fries").@quantity = "2";
myXML.item.(menuName=="medium cola").@quantity = "2";
4、
使用 for 循环可以循环访问 XML 的节点,如下所示:
var total:Number = 0;
for each (var property:XML in myXML.item)
{
var q:int = Number(property.@quantity);
var p:Number = Number(property.price);
var itemTotal:Number = q * p;
total += itemTotal;
trace(q + " " + property.menuName + " $" + itemTotal.toFixed(2))
}
trace("Total: $", total.toFixed(2));
5、
可以使用 attribute() 或 attributes() 方法访问 XML 或 XMLList 对象的特定属性或所有属性,如下面的代码所示:
var employee:XML =
<employee id="6401" code="233">
<lastName>Wu</lastName>
<firstName>Erin</firstName>
</employee>;
trace(employee.attribute("id")); // 6401
trace(employee.attribute("*").toXMLString());
// 6401
// 233
trace(employee.attributes().toXMLString());
// 6401
// 233
6、
employee.attribute("id")
employee["@id"]
employee.@["id"]
其中每一个都等效于 employee.@id。但是,语法 employee.@id 是首选方式。
7、
可将 * 通配符和 @ 符号一起使用来访问 XML 或 XMLList 对象的所有属性,如下面的代码所示:
var employee:XML =
<employee id="6401" code="233">
<lastName>Wu</lastName>
<firstName>Erin</firstName>
</employee>;
trace(employee.@*.toXMLString());
// 6401
// 233
可以使用 attribute() 或 attributes() 方法访问 XML 或 XMLList 对象的特定属性或所有属性,如下面的代码所示:
var employee:XML =
<employee id="6401" code="233">
<lastName>Wu</lastName>
<firstName>Erin</firstName>
</employee>;
trace(employee.attribute("id")); // 6401
trace(employee.attribute("*").toXMLString());
// 6401
// 233
trace(employee.attributes().toXMLString());
// 6401
// 233
7、
ActionScript 3.0 包含 for..in 语句和 for each..in 语句,用于遍历 XMLList 对象。例如,我们来看下面的 XML 对象 myXML
和 XMLList 对象 myXML.item。XMLList 对象 myXML.item 由 XML 对象的两个 item 节点组成。
var myXML:XML =
<order>
<item id='1' quantity='2'>
<menuName>burger</menuName>
<price>3.95</price>
</item>
<item id='2' quantity='2'>
<menuName>fries</menuName>
<price>1.45</price>
</item>
</order>;
for..in 语句用于遍历 XMLList 中的一组属性名称:
var total:Number = 0;
for (var pname:String in myXML.item)
{
total += myXML.item.@quantity[pname] * myXML.item.price[pname];
}
for each..in 语句用于遍历 XMLList 中的属性:
var total2:Number = 0;
for each (var prop:XML in myXML.item)
{
total2 += prop.@quantity * prop.price;
}
8、加参数
a="name";
for each(var i:XML in myxml)
{
trace(" ssssssss :" +i.@[a]+"\n");//可以
trace(" ssssssss :" +i[“@”+a]+"\n");//可以,
trace(" ssssssss :" +i[a]+"\n");//不可以,必须加@表示取的是属性
trace(" ssssssss :" +i[@a]+"\n");//不可以,@后紧跟的必是xml中确定存在的属性,不能是参数
}