Flex HTTPServices и действительный XML - PullRequest
0 голосов
/ 20 июля 2010

В настоящее время я пытаюсь установить связь с API, используя Flex в качестве клиента.Я использую Flash Builders HTTPServices для этого, немного новичка во всем этом.Все работает правильно, если элементы XML-файлов, к которым получен доступ, отформатированы правильно, однако, если я добавляю дефис к имени элемента, я получаю изгиб, предупреждающий меня о факте, т.е.Возвращенный объект содержит недопустимое имя «создан», которое не соответствует рекомендациям по именованию идентификатора Actionscript

Это работает:

<?xml version="1.0" encoding="UTF-8"?>
<projects type="array">
  <project>
    <createdon>2010-07-10</createdon>
    <name>Project 1</name>
  </project>
</projects>

Это не:

<?xml version="1.0" encoding="UTF-8"?>
<projects type="array">
  <project>
    <created-on>2010-07-10</created-on>
    <name>Project 1</name>
  </project>
</projects>

Мой вопрос заключается в том, что я могу сделать, чтобы возвращаемый XML ActionScript был дружественным.Есть ли стандарт или лучшая практика для этого?Я, очевидно, не имею никакого контроля над передачей XML.

Приветствия

Ответы [ 3 ]

0 голосов
/ 15 февраля 2012

Для дальнейшего использования используйте квадратные скобки. Например:

private var createdOn:String;

protected function myService_requestHandler(event:ResultHandler):void
{
    createdOn = event.result.projects.project["created-on"];
}
0 голосов
/ 26 апреля 2013

Если вы действительно хотите получить доступ к содержимому без '-', установите для resultFormat значение 'text', а затем выполните что-то вроде:

onLoad(event:ResultEvent):void
{
     var result:String = event.result;
     result = result.replace(/created-on/g, 'createdOn');
     var xml:XML = new XML(result);
     // do your processing now...
}
0 голосов
/ 20 июля 2010

Установите формат результата из HTTPService на e4x или xml. Значение по умолчанию - object, поэтому Flex пытается создать объект ActionScript для каждого элемента в дереве XML.

<mx:HTTPService resultFormat="xml" other="attributes go here"/>
...