Лучший способ определить, существует ли атрибут XML в Flex

Используйте powerset из more_itertools :

>>> import more_itertools

>>> ["".join(p) for p in list(more_itertools.powerset("ab"))]
['', 'a', 'b', 'ab']

Это powerset - это функция удобства, непосредственно реализованная с помощью функции itertools рецепты .

9
задан mmattax 29 September 2008 в 15:32
поделиться

5 ответов

Вы нашли лучший способ сделать это:

event.result.attribute("Error").length() > 0

attribute метод является предпочтительным способом получить атрибуты, если Вы не знаете, там ли они или нет.

11
ответ дан 4 December 2019 в 08:54
поделиться

Мне нравится этот метод потому что a.) это крайне просто и b.) Эли Greenfield использует его.;)

if("@property" in node){//do something}
5
ответ дан 4 December 2019 в 08:54
поделиться

Можно проверить это следующим образом:

if (undefined == event.result.@Error)

или динамично

if (undefined == event.result.@[attributeName])

Обратите внимание, что в Вашем примере, две точки получат всех потомков на всех уровнях, таким образом, Вы получите список в результате. Если не будет никаких Ошибочных атрибутов, то Вы получите пустой список. Вот почему это никогда не будет равняться пустому указателю.

3
ответ дан 4 December 2019 в 08:54
поделиться

Я выяснил решение, мне все еще интересно, если существует лучший способ сделать это...

Это будет работать:


private function callback(event:ResultEvent):void {
    if(event.result.attribute("Error").length()) {
        // error attr present
    }
    else {
        // error attr not present
    }
}

1
ответ дан 4 December 2019 в 08:54
поделиться

Принятие этого в примере event.result XML возразите содержанию, из которого точно, когда Вы отправили, это должно работать (вследствие того, что тег Проверки является корневым тегом XML):

var error:String = event.result.@Error;
if (error != "")
    // error
else
    // no error

Вышеупомянутый пример предположит что существующее Error атрибут с пустым значением нужно рассматривать как случай "без ошибок", тем не менее, поэтому, если Вы хотите знать, существует ли атрибут на самом деле или нет, необходимо сделать это:

if (event.result.hasOwnProperty("@Error"))
    // error
else
    // no error
2
ответ дан 4 December 2019 в 08:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: