给出以下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”] ').find(' 拇指');
Action Script 2中是否有这样的方法(不能使用AS3)?
刚刚意识到我已将您的父标记更改为集合。
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
}
}
AS2曾经有一个XPath实现,甚至两个iirc。他们两个都超出了任何可能的原因,所以我并不是真的建议你使用它们,但它会很简单地解决这个和类似的问题。
http://osflash.org/xpath4as2这里是我能找到的东西。在mx。*包中也有一些东西,但它具有灾难性的质量......
如果您仅限于播放器版本而不是特定语言版本,我建议您查看Haxe。它有一些很好的[er] API用于处理XML,然后是你在AS2中使用的常规DOM API。
我曾经有一个XML包装类来减少与XML相关的操作的冗长,但是我这么多年没碰到过AS2,我觉得这个类现在已经不可逆转了......但是,如果你的例子碰巧是现实生活中的例子 - 为什么不直接使用DOM?除非你的项目真的有过多的XML处理,否则对我来说似乎没那么多工作......