给出以下XML代码:
<set name="thumbsBooks">
<set name="pdf">
<thumb>Data I want to access</thumb>
<thumb>Data I want to access</thumb>
</set>
<set name="printed">
<thumb>Data I don't want to access</thumb>
<thumb>Data I don't want to access</thumb>
</set>
<set>
我希望能够使用父标记的“name”属性值作为选择器来获取“thumb”标记中包含的数据,就像你在jQuery中所做的那样:$('set [name =“ PDF“] ')找到(' 拇指');
Action Script 2中是否有这样的方法(不能使用AS3)?
答案 0 :(得分:0)
刚才意识到我已将您的父标记更改为设置。
var myXML:XML = new XML(
<sets name="thumbsBooks">
<set name="pdf">
<thumb>Data I want to access</thumb>
<thumb>Data I want to access</thumb>
</set>
<set name="printed">
<thumb>Data I don't want to access</thumb>
<thumb>Data I don't want to access</thumb>
</set>
</sets>);
for each ( var mySet:XML in myXML.set ) {
if( mySet.@name == "pdf" ) {
// do your stuff
}
}
答案 1 :(得分:0)
AS2曾经有一个XPath实现,甚至两个iirc。它们都超出了任何可以想象的原因,所以我并不是真的建议你使用它们,但它可以非常简单地解决这个和类似的问题。
http://osflash.org/xpath4as2这是我能找到的东西。在mx。*包中也有一些东西,但它具有灾难性的质量......
如果您仅限于播放器版本而非特定语言版本,我建议您先看看Haxe。它有一些很好的[er] API用于处理XML,然后是AS2中的常规DOM API。
我曾经有一个XML包装类来减少与XML相关的操作的冗长,但是我这么多年没碰到过AS2,我觉得这个类现在已经不可逆转了......但是,如果你的例子碰巧是现实生活中的例子 - 为什么不直接使用DOM?对我来说似乎没什么用,除非你的项目中确实有过多的XML处理......