0
是否可以在Actionscript 3中的XML節點查詢中使用變量?Actionscript3用變量分析XML節點路徑
鑑於以下RSS饋送結構:
<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" version="2.0">
<channel>
<item>
<media:content url="http://www.example.com/test.jpg" type="image/jpeg" height="683" width="1024" />
<media:content url="http://www.example.com/test2.jpg" type="image/jpeg" height="683" width="1024" />
</item>
</channel>
</rss>
下面的代碼按預期工作,爲媒體命名空間中的第一個內容節點顯示url屬性值:
var nsAttribute:String = 'media';
var nodeName:String = 'content';
var holder:String = 'item';
var imagePathAttribute = 'url';
// Pull the namespace attribute value from the xml declaration
var ns:String = rssXML.namespace(nsAttribute);
// Make a namespace instance based on the xpl namespace's URI
var imagePathNameSpace:Namespace = new Namespace(ns);
trace (rssXML.channel.child(holder).imagePathNameSpace::content[0][email protected]);
返回預期結果:
http://www.example.com/test.jpg
但是,當我使用變量路徑節點,我得到一個錯誤。
trace (rssXML.channel.child(holder).imagePathNameSpace::nodeName[0][email protected]);
我收到的錯誤是:
TypeError: Error #1010: A term is undefined and has no properties.
大概是因爲因爲路徑返回一個空字符串無法找到索引的任何值。如果我從路徑中刪除索引部分「[0]」,它將返回一個空字符串。
那麼如何在xml查詢中使用變量?我試圖這樣做的原因是爲了讓我們的工作具有足夠的可擴展性,我們需要做的就是設置類的屬性,因此它可以使用不同的rss提要類型,每個特定Feed的代碼。
感謝您提供任何幫助。