帮助阅读AS3,E4X中的复杂XML

时间:2010-12-09 20:19:35

标签: xml actionscript-3 e4x

我正在尝试从kuler读取XML,但我无法从多个标签中检索值,我不知道为什么。

特别是这一个:

<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 :(得分:0)

您可以简单地抓取与给定名称匹配的所有后代:

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

希望有所帮助。 XML有时会让人感到困惑。

答案 1 :(得分:0)

我已经能够通过Adobe文档中详细描述的命名空间特性的实现来读取具有命名空间kuler的节点的值。

here is docs from adobe on namespaces and xml

但我还是无法读取'enclosure'节点的内容。 :(