Странные вещи с XML'ем
Имеется загружаемый флешем XML вот такого содержания.
Код AS3:
Код AS3:
|
Код AS3:
|
А вот и нет.
trace(xmlLoader.LicenseInfo[0].@Valid)//кидает ошибку как выше trace(xmlLoader.LicenseInfo[0])//undefined, несморя на то, что он есть в документе. |
Покажите, как создается и как инициализируется переменная со странным именем xmlLoader
|
Второй трейс неправильно обращается, а вот первый и третий должны срабатывать.
Попробуйте корневой тег в XML сделать без атрибутов. Я с этим сталкивался и только так проблема решилась. Но я так и не нашел, почему в AS такая ерунда. Если кто знает, напишите. Код AS3:
|
Вещи не странные, а абсолютно разумные. Нет у вашего xml элемента LicenceInfo. Есть элемент "http://www.payproglobal.com/"::LicenseInfo. Раз уж сделали namespace, нужно уметь с ним работать.
А так - все элементарно: Код AS3:
|
оу, а
|
Хм.. Окей. Теперь ясно. Неймспейсы создавал не я а сервер, но теперь понятно.
Добавлено через 29 минут А вот и нет. Пример от maxkar работает, но только с упрощенными данными. Полный ответ сервера звучит так. Код:
<?xml version="1.0" encoding="utf-8"?> Код:
<LicenseInfo Valid="true"> Код AS3:
Код AS3:
|
Стоп! Вас < не смущают? Если вы ничего не перепутали, то у вас весь XML содержит ровно один элемент "http://www.payproglobal.com/"::string. Все остальное это один (или несколько, я спецификацию не учил) text node. В том текстовом узле содержится "произвольный текст", и с точки зрения всех инструментов, он является именно "текстом", а не набором элементов/атрибутов и т.п.. А в трейс вы выводите внутреннее содержимое. Попробуйте toXMLString вместо toString выводить. Вот для него как раз все нормально должно быть.
Т.е. "<<<" в элементе test при записи в XML будет выглядеть как Код:
<test><<<</test> Так что у вас все парсится нормально. Правильнее всего исправить сервер (чтобы он не строку отдавал, а само значение). Но если не получается, вам нужно выбирать дочерний для корневого элемент (он должен быть типа "текст") и затем еще раз его парсить. Ну и проверить, что будет, если в ответе есть несколько LicenseInfo. |
Часовой пояс GMT +4, время: 01:19. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.