Учитывая этот документ:Что такое эквивалент Flex/AS3/E4X этого запроса xpath?
<doc>
<element>
<list>
<key attr='val'/>
</list>
</element>
<element>
<list>
<key attr='other'/>
</list>
</element>
<element>
<list/>
</element>
</doc>
Я хочу e4x эквивалент //element[list/key/@attr="val"]
XPath. Можно ли это сделать?
Что произойдет в случае, если ключевой элемент существует без атрибута @attr? Я знаю, что XPath не возвращает для этого узла, но кратеры e4x с отсутствующим атрибутом типа ошибки для простых выражений. Это тоже происходит? –
В моем опыте, если атрибут отсутствует, ничего не будет возвращено, ошибка не будет выбрана. – invertedSpear
Это не вызовет проблем в AS3. В JavaScript есть одна проблема. Пока атрибут проверяется на дочернем узле (независимо от того, существует он или нет) в фильтре, ошибки не будут выбрасываться. '.. (@ bar ==" baz ")' будет вызывать ошибку, поскольку не каждый элемент имеет атрибут 'bar', поэтому вы бы хотели попробовать' .. (function :: attribute ("bar") == " baz ")' в JavaScript. –