我有这种XML结构:
<dbase>
<employee>
<Name>NAME</Name>
<Surname>SURNAME</Surname>
<Company>COMPANY</Company>
<Date>DATE</Date>
<Compare>1377390433625</Compare>
</employee>
</dbase>
我想知道如何搜索比较值,如果匹配则删除员工。
我会感激任何反馈。
答案 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方法。你很可能会有其他方法。