Что такое эквивалент Flex/AS3/E4X для этого запроса xpath?

Учитывая этот документ:

<doc>
    <element>
        <list>
            <key attr='val'/>
        </list>
    </element>
    <element>
        <list>
            <key attr='other'/>
        </list>
    </element>
    <element>
        <list/>
    </element>
</doc>

Я хочу e4x эквивалент xpath //element[list/key/@attr="val"], Возможно ли это сделать?

3 ответа

Решение
..element.(list.key.@attr == "val")
xmlVarName.element.list.key.(@attr=="val");

альтернатива

xmlVarName..key.(@attr=="val");

Важно отметить, что

..element.(list.key.@attr == "val")

Может дать сбой, если не все ключевые узлы имеют @attr.

Самый безопасный (хотя по моему опыту, не на 100% успешный) метод для извлечения списка ваших узлов был бы.

..element.(list.key.attribute("attr") == "val")

Тем не менее, у меня были проблемы с e4x и условными выражениями (реализация AS3, Mozilla кажется лучше), но, похоже, дело до источника xml.

Другие вопросы по тегам