2010-12-09 60 views
1

我想从库勒读取一个XML,但是我无法从几个标签中检索这些值,但我不知道为什么。帮助阅读AS3中复杂的XML,E4X

特别是这一个:

<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: Syntax error: expecting rightparen before colon)

现在我越来越沮丧了。在adobe.livedocs和关于XML的教程中没有关于这个的文档,就像kirupa的文档一样,没有提到这些东西。

+0

你试图得到哪个标记? – chchrist 2010-12-09 20:26:56

+0

对于命名空间,你有没有阅读过命名空间节点的访问? – 2010-12-09 21:52:06

回答

0

你可以简单地抢匹配指定名称的所有后代:

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

希望有点帮助。 XML有时会令人困惑。