Flash Filter XML с as3, используя оператор like - PullRequest
0 голосов
/ 13 декабря 2011

я хочу отфильтровать мой xml

Я хочу запрос типа: select * from product like'% + myword +%'

я имею в виду, например, я хочу искать в XML все контакты, имя которых содержит Джон

как мне написать код as3 для этого?

это мой XML, и я хочу выбрать 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 голосов
/ 13 декабря 2011

Попробуйте что-то вроде:

yourXML. (Product.inStr (yourWord)> -1);

Более подробно о E4x (не XPath - это для AS2), посмотрите http://dispatchevent.org/roger/as3-e4x-rundown/

0 голосов
/ 13 декабря 2011

Это оператор E4X, чтобы получить «Johns» из вашего списка контактов:

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

Это вернет XMLList с элементами контакта, в имени которых содержится «John».В вашем примере XML это первые две записи.

Редактировать: я предположил, contacts - это переменная, которой вы присвоили свой xml, например:

var contacts:XML = <contacts>...</contacts>;
0 голосов
/ 13 декабря 2011

Если вы посмотрите документацию AS3, то найдете достаточно информации, чтобы начать работу.

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

В вашем случае это будет yourXml.contact.(name.hasOwnProperty("John")). Это, однако, не вернет список с John Homer и John Writer. Я не уверен, как использовать подстановочные знаки в ваших утверждениях E4X.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...