XML操作

    技术2022-05-19  20

          对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);


    最新回复(0)