Flex4_操作XML
一、创建XML类
1、把字符串对象转换为XML:
var xmlStr:String="<students><student><name>吕布</name><sex>男</sex><age>27</age></student>";
xmlStr+="<student><name>貂蝉</name><sex>女</sex><age>26</age></student></students>";
var rootXML:XML=new XML(xmlStr);
trace(rootXML);
2、调用XML类,(以下实例以此MXL为样本):
var rootXML:XML=
<students>
<student>
<name>刘备</name>
<sex>男</sex>
<age>35</age>
</student>
<student>
<name>吕布</name>
<sex>男</sex>
<age>38</age>
</student>
<student>
<name>貂蝉</name>
<sex>女</sex>
<age>22</age>
</student>
</students>;
3、添加子节点(节点存在,则修改,不存在则添加):
rootXML.student[0].mz="回族";
//使用节点变量
var newChild:String="mz";
rootXML.student[1][newChild]="苗族";
//使用节点索引
rootXML.children()[2].mz="汉族";
4、添加节点内容:
//添加子节点
var newXML:XML=
<fen>
<java>99</java>
<delphi>86</delphi>
<flex>93</flex>
</fen>;
//位于其它子节点尾部。
rootXML.student[0].appendChild(newXML);
//位于其它子节点首部
rootXML.student[1].prependChild(newXML);
//添加同级节点
newXML=
<student>
<name>西施</name>
<sex>女</sex>
<age>18</age>
</student>
//选择节点之前
rootXML.insertChildBefore(rootXML.student[0],newXML);
//选择节点之后
rootXML.insertChildAfter(rootXML.student[1],newXML);
5、添加属性(有则修改,无则添加)
rootXML.student[0].@id="1000"
var newid:String="id";
rootXML.student[1].@[newid]="2000";
6、读取属性
trace(rootXML.student[0].@id);
trace(rootXML.student[0].attribute("id"));
7、查找遍历节点和属性
//根据节点内容查节点
trace(rootXML.student.(name=="刘备"));
//根据节点属性查节点
trace(rootXML.student.(@id=="1002"));
//得到某节点的父节点内容
trace(rootXML.student[0].name.parent());
var i:int=0;
for(i=0;i<rootXML.children().length();i++){
//打印每个学生的信息
trace(rootXML.children()[i].toString());
//打印每个学生的名称
trace(rootXML.children()[i].name);
//打印每个学生的性别
trace(rootXML.student[i].sex);
//打印每个学生的的属性ID
trace(rootXML.children()[i].@id);
//打印节点名称(标签,不是值)
trace(rootXML.children()[i].name());
//遍历每个节点的所有属性标签名称
var attLen:int=rootXML.children()[i].attributes().length();
for(var j:int=0;j<attLen;j++){
//属性名称
var attName:String=rootXML.children()[i].attributes()[j].name();
trace(attName);
//属性值
var attValue:String=rootXML.children()[i].@[attName];
trace(attValue);
}
}
8、删除节点或属性
//删除节点
delete rootXML.student[0].sex;
//删除属性
delete rootXML.student[0].@id;