Flex / ActionScript - XML - PullRequest
       16

Flex / ActionScript - XML

0 голосов
/ 07 ноября 2011

Я пытаюсь прочитать приведенный ниже xml-файл и получить пары имя-значение в Flex / Actionscript.

sample.xml

<ABC>
  <XYZ>               // First child
    <id> </id>
    <width> 10 </width>
    <height> 10 </height>
    <name> Person1 </name>
  </XYZ>
  <XYZ>              // Second child
    <id>  </id>
    <width>  20 </width>
    <height> 20 </height>
    <name> Person2 </name>
   </XYZ>
</ABC>

Я пытаюсь использовать следующие все имена и значения тегов для обоих потомков, используя .name() и .text() функцию XML

Но я не понимаю.

Мой вопрос,

Может кто-нибудь подскажите, пожалуйста, как разобрать этот xml для получения подробностей каждого ребенка отдельно в объекте, а затем сохранить этот объект в массив для последующего использования?

Заранее спасибо

Ответы [ 2 ]

3 голосов
/ 07 ноября 2011

Вам необходимо использовать e4x, что является ECMAScript для XML. e4x, как и XPath, может перемещаться по документу XML для поиска элементов.

Вот несколько статей от Adobe.

http://learn.adobe.com/wiki/display/Flex/E4X
http://livedocs.adobe.com/flex/3/html/help.html?content=13_Working_with_XML_03.html

Посмотрите на образцы в следующем документе.

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/XML.html

Некоторые учебники

Посмотрите здесь учебник
Вот еще один урок

1 голос
/ 07 ноября 2011
        var xml:XML =
            <ABC>
                <XYZ>               // First child
                    <id> </id>
                    <width> 10 </width>
                    <height> 10 </height>
                    <name> Person1 </name>
                </XYZ>
                <XYZ>
                    <id>  </id>
                    <width>  20 </width>
                    <height> 20 </height>
                    <name> Person2 </name>
                </XYZ>
            </ABC>;
        // Get list of children named XYZ
        var children:XMLList = xml.XYZ;
        for each (var child:XML in children)
        {
            trace(child.name());
            // Get list of inner children (with any name)
            for each (var prop:XML in child.children())
            {
                // You need text from inner children, so here it is
                trace("\t" + prop.name() + " = " + prop.text());
            }
        }

Обратите внимание, что ваш комментарий (// Первый дочерний элемент) станет текстовым узлом с нулевым именем в дочернем списке.
Комментарии в XML выглядят так:
<!-- comment -->

...