XML操作

来源:互联网 发布:越狱下载软件 编辑:程序博客网 时间:2024/05/16 06:53

      对XML内容进行操作时,查找XML节点是很重要的一个操作。在ActionScript 3.0中,提供了两种查找XML节点的方式:通过属性进行查找和通过节点内容进行能够查找。

      使用属性进行查找时,可以直接指定查找的内容的表达式。如果节点符合表达式的判断,那么在返回值内加入节点。具体使用方法如下代码所示。

var xml:String="<root>"

                    +"<Element>"

                    +"<Element1 version='9'>Flash CS3</Element1>"

                    +"<Element1 version='8'>Flash 8</Element1>"

                    +"<Element1 version='7'>Flash 2004MX</Element1>"

                    +"</Element>"

                    +"</root>";

var flexXML:XML=new XML(xml);

trace(flexXML.Element.Element1.(attribute('version')>7));

在上面代码中,flexXML.Element.Element1.(attribute('version')>7通过指定查找version属性大于7的节点,并输出。上面代码输出结果如下所示。

<Element1 version='9'>Flash CS3</Element1>

       <Element1 version='8'>Flash 8</Element1>

在进行查找时可以使用“==”、“>”、“<”、“>=”和“<=”等操作符进行对属性的判断。XML中,还提供一个hasOwnProperty判断节点中是否存在查找使用属性。查找表达式支持多条件布尔运算。使用方式如下代码所示。

var xml:String="<root>"

                    +"<Element>"

                    +"<Element1 version='9'>Flash CS3</Element1>"

                    +"<Element1 version='8' company='geostar'>Flash 8</Element1>"

                    +"<Element1 version='7'>Flash 2004MX</Element1>"

                    +"</Element>"

                    +"</root>";

var flexXML:XML=new XML(xml);

trace(flexXML.Element.Element1.( hasOwnProperty(“company”)&&@version>7));

//输出的结果为:<Element1 version='8' company='geostar'>Flash 8</Element1>

通过节点内容查找节点的方式与通过属性查找节点的方式完全一致。同样也是使用表达式的方式对节点内容进行判断查找。具体使用方式如下代码所示。

var flexXML:XML=<root>
         <Element>
          <Element1>
           <Version>
            9
           </Version>
          </Element1>
          <Element1>
           <Version>
            8
           </Version>
          </Element1>
         </Element>
        </root>
    trace(flexXML.Element.Element1.(Version>7));   

运行结果为:<Element1>
                               <Version>9</Version>
                            </Element1>
                            <Element1>
                                <Version>8</Version>
                            </Element1>

 

xml直接获取某一特定标签名的所有节点,如下示例:

var flexXML:XML=<root>
         <Element>
          <Element1>
           <Version>
            9
           </Version>
          </Element1>
          <Element1>
           <Version>
            8
           </Version>
          </Element1>
         </Element>
        </root>
    trace(flexXML..Element1);
    trace(flexXML..Version);   

运行结果为:

<Element1>
           <Version>9</Version>
       </Element1>
       <Element1>
           <Version>8</Version>
       </Element1>


       <Version>9</Version>
       <Version>8</Version>

对xml高级操作部分:

(1) 改变xml的标签名:

var xml:XML=new XML("<标签名></标签名>");
      //改变xml标签名
      xml.setName("标签名1");

(2)往xml中添加属性

var xml:XML=new XML("<标签名></标签名>");
       //添加属性
       xml.@["属性名"]="属性值";

(3)设置xml中文本

 var xml:XML=new XML("<标签名></标签名>");

 xml.setChildren("文本内容");

 (4)在xml中添加子节点

 var xml:XML=new XML("<标签名></标签名>");
       var xml2:XML=new XML("<标签名2></标签名2>");

 var xml3:XML=new XML("<标签名3></标签名3>");

 //子节点后面追加子节点

 xml.appendChild(xml2);
       //子节点前面追加添加子节点
       //xml.prependChild(xml3);