使用as语句使用as3 Flash过滤XML

时间:2011-12-13 09:13:20

标签: xml flash actionscript-3 filtering

我想过滤我的xml

我想要一个像select * from product like'% + myword +%'

这样的查询

我的意思是,例如我想在xml中搜索名称中包含John

的所有联系人

如何编写as3代码来执行此操作?

这是我的XML,我想从这个名称中包含John的列表中选择XMLList。

<contacts>  
    <contact>
        <category> category1 </category>
        <name> John Homer </name>
    </contact>
    <contact>
        <category> category1 </category>
        <name> John Writer </name>
    </contact>
    <contact>
        <category> category2 </category>
        <name> Joshua Homer </name>
    </contact>
    <contact>
        <category> category2 </category>
        <name> Alex Homer </name>
    </contact>
</contacts>

3 个答案:

答案 0 :(得分:0)

如果您查看AS3文档,您将找到足够的信息来帮助您入门。

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/XML.html

在您的情况下,它将是yourXml.contact.(name.hasOwnProperty("John"))。但是,这不会返回包含John HomerJohn Writer的列表。我不确定如何在E4X语句中使用通配符。

答案 1 :(得分:0)

尝试类似:

yourXML。(product.inStr(yourWord)&gt; -1);

有关E4x的更多信息(不是XPath - 适用于AS2),请查看http://dispatchevent.org/roger/as3-e4x-rundown/

答案 2 :(得分:0)

这是从你的联系人名单中获取“约翰斯”的E4X声明:

var johns:XMLList = contacts.contact.(name.toString().indexOf("John") != -1);

这将返回一个XMLList,其中包含名称中包含“John”的联系人元素。 在您的示例XML中,这是前两个条目。

编辑:我认为联系人是您为xml分配的变量,如下所示:

var contacts:XML = <contacts>...</contacts>;