Flex XML E4X Проверка атрибута == значение - PullRequest
0 голосов
/ 16 марта 2012

Итак, у меня есть такой xml, который хранится в переменной в Flex AS3

var xm:XML=<licenses>
                <license id="7" name="No known copyright restrictions" url="http://flickr.com/commons/usage/" />
                <license id="4" name="Attribution License" url="http://creativecommons.org/licenses/by/2.0/" />
                <license id="6" name="Attribution-NoDerivs License" url="http://creativecommons.org/licenses/by-nd/2.0/" />
                <license id="3" name="Attribution-NonCommercial-NoDerivs License" url="http://creativecommons.org/licenses/by-nc-nd/2.0/" />
                <license id="2" name="Attribution-NonCommercial License" url="http://creativecommons.org/licenses/by-nc/2.0/" />
                <license id="1" name="Attribution-NonCommercial-ShareAlike License" url="http://creativecommons.org/licenses/by-nc-sa/2.0/" />
                <license id="5" name="Attribution-ShareAlike License" url="http://creativecommons.org/licenses/by-sa/2.0/" />
            </licenses>

И API Flickr возвращает лицензию на фотографию, которая анализируется и помещается в объект.Допустим, идентификатор лицензии для конкретной фотографии доступен как

myPhoto.licenseId;

Как узнать, какая лицензия принадлежит данному идентификатору лицензии?

Я пробовал

var x1:Object=(xm.licenses.license.name.(@id==myPhoto.licenseId.toString()));
var x2:Object=(xm.license.name.(@id==myPhoto.licenseId.toString()));
var x3:Object=(xm.licenses.license.(@id==myPhoto.licenseId.toString()));

Но все они возвращают пустое XMLList

Кроме того, не помещая toString() дает тот же результат.

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

1 Ответ

2 голосов
/ 16 марта 2012

Дох!монстр снова наносит удар !!

Теперь я заметил, что пытался получить доступ к xm.licenses.license.Это неправильно, потому что <licenses> является корнем для XML.Правильный -

xm.license.(@id==myPhoto.licenseId.toString());
...