Есть ли альтернативный способ фильтрации элементов XML без синтаксиса E4X? - PullRequest
0 голосов
/ 16 октября 2019

Я пытаюсь скомпилировать какой-нибудь старый код ActionScript (часть приложения Flash) для JS, используя Jangaroo . Jangaroo не поддерживает синтаксис E4X и не работает с такими вещами, как оператор двойной точки .. или фильтры скобок a.(CONDITION). Поэтому мне нужно переписать эти части кода с использованием простого ActionScript.

Для оператора двойной точки вместо этого я использовал метод descendants(), но не смог найти альтернативный способ написания фильтра скобок.

Вот оригинальный код, который у меня был:

B = xml..destination.(@id == someId)

Я написал его сейчас:

B = xml.descendants("destination").(@id == someId)

Но я все еще хочу удалить .(@id == someId).

Я думаю о чем-то вроде:

if (xml.descendants("destination").attribute("id") == someId)
{
B = xml.descendants("destination")
}

Возможно ли это?

1 Ответ

0 голосов
/ 18 октября 2019

Так вот как я поступил. Я не проверял его функциональность, но компилятор прошел его.

var destinations:XMLList = null;
for each (var elm in xml.descendants("destination") )
{
 if ( elm.attribute("id") == someId )
 {
    destinations += elm;
 }
}
...