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;
posted @ 2014-07-16 21:55  星火卓越  阅读(671)  评论(0编辑  收藏  举报