AS3 XML删除节点

时间:2013-08-25 20:32:59

标签: xml actionscript-3

我有这种XML结构:

<dbase>
   <employee>
      <Name>NAME</Name>
      <Surname>SURNAME</Surname>
      <Company>COMPANY</Company>
      <Date>DATE</Date>
      <Compare>1377390433625</Compare>
   </employee>
</dbase>

我想知道如何搜索比较值,如果匹配则删除员工。

我会感激任何反馈。

2 个答案:

答案 0 :(得分:4)

以下代码可能会有用。假设xml结构将是这样的:

        <dbase>
        <employee>
            <Name>NAME</Name>
            <Surname>SURNAME</Surname>
            <Company>COMPANY</Company>
            <Date>DATE</Date>
            <Compare>1377390433625</Compare>
        </employee>
        <employee>
            <Name>WILL BE DELETED</Name>
            <Surname>SURNAME</Surname>
            <Company>COMPANY</Company>
            <Date>DATE</Date>
            <Compare>1234</Compare>
        </employee>
        <employee>
            <Name>NAME</Name>
            <Surname>SURNAME</Surname>
            <Company>COMPANY</Company>
            <Date>DATE</Date>
            <Compare>34878937</Compare>
        </employee>         
    </dbase>

在下一个代码中,我将使用Compare = 1234删除节点:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" creationComplete="init()">
    <mx:Script>
        <![CDATA[

            public function init():void{
                delete myXML.employee.(elements('Compare') == '1234')[0];
                txt.text = myXML.toString();
            }
        ]]>
    </mx:Script>
    <mx:XML id="myXML">
        <dbase>
            <employee>
                <Name>NAME</Name>
                <Surname>SURNAME</Surname>
                <Company>COMPANY</Company>
                <Date>DATE</Date>
                <Compare>1377390433625</Compare>
            </employee>
            <employee>
                <Name>WILL BE DELETED</Name>
                <Surname>SURNAME</Surname>
                <Company>COMPANY</Company>
                <Date>DATE</Date>
                <Compare>1234</Compare>
            </employee>
            <employee>
                <Name>NAME</Name>
                <Surname>SURNAME</Surname>
                <Company>COMPANY</Company>
                <Date>DATE</Date>
                <Compare>34878937</Compare>
            </employee>         
        </dbase>
    </mx:XML>
    <mx:TextArea id="txt" width="400" height="400" />
</mx:Application>

这一行基本上会删除与我想要的号码匹配的节点(在这种情况下, 1234 ):

delete myXML.employee.(elements('Compare') == '1234')[0];

您可以在此处 LINK 试试。 我希望这会有用。

(已编辑)2013-08-26 : 在这里 LINK 下载项目。此文件是.fxp文件,您可以导入此文件,单击文件 - &gt; 导入... - &gt; Flash Builder项目.. - &gt; 选择.fxp文件

答案 1 :(得分:-2)

转换为内部类,创建一个填充(data:XML)和toXML():XML方法。你很可能会有其他方法。