Помогите прочитать сложный XML в AS3, E4X - PullRequest
1 голос
/ 09 декабря 2010

Я пытаюсь прочитать XML из kuler, но не могу получить значения из нескольких тегов, и я не знаю почему.

В частности, это:

<enclosure xmlns="http://www.solitude.dk/syndication/enclosures/">
  <title>yellow</title> 
- <link length="1" type="image/png">
  <url>http://kuler-api.adobe.com/kuler/themeImages/theme_990712.png</url> 
  </link>
  </enclosure>

Для этого я пытался

trace(XMLvar.channel.item.enclosure);
trace(XMLvar.channel.item.enclosure[0]);
trace(XMLvar.channel.item.enclosure.text());
trace(XMLvar.channel.item..enclosure);
trace(XMLvar.channel..item..enclosure);

Среди других.

Я могу заверить вас, что маршрут в порядке.Я могу читать другие значения на том же уровне.Я проверяю в редакторе Internet Explorer XML, что они находятся на одном уровне.Я проверял много раз, это не проблема.

А это другой <kuler:themeTitle>:

  <kuler:themeItem>
  <kuler:themeID>990712</kuler:themeID> 
  <kuler:themeTitle>yellow</kuler:themeTitle> 

[...]

Я получаю сообщение об ошибке из-за двоеточия при попытке прочитать значение.

(1084: синтаксическая ошибка: ожидание правильной пары перед двоеточием)

Я сейчас очень расстроенВ документации adobe.livedocs и учебниках по XML нет документации, подобной той, что есть в kirupa, о таких вещах ничего не говорится.

Ответы [ 2 ]

0 голосов
/ 11 декабря 2010

Мне удалось благодаря реализации характеристик пространств имен, подробно описанных в документе Adobe, прочитать значения узлов с помощью kuler пространства имен.

вот документы из Adobe по пространствам имен и xml

Я пока не могу прочитать содержимое узла enclosure. :(

0 голосов
/ 10 декабря 2010

Вы можете просто захватить всех потомков, соответствующих данному имени:

for each (var enclosure:XML in myXML.descendants('enclosure')) {
    var title:String = enclosure.child("title").text();
    ...    
}

Надеюсь, это немного поможет. XML иногда сбивает с толку.

...