如何在FlashAS2中按属性名称/值查找特定的XML数据?

如何在FlashAS2中按属性名称/值查找特定的XML数据?,flash,xml-parsing,actionscript-2,Flash,Xml Parsing,Actionscript 2,给定以下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"> <

给定以下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]'。查找'thumb'


在Action Script 2无法使用AS3的情况下,是否有这样的方法?

刚刚意识到我已将您的父标记更改为set

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。这两种方法都有着超乎想象的效果,所以我并不是真的建议你使用它们,但它可以非常简单地解决这个问题和类似的问题

这是我能找到的东西。mx.*包中也有一些东西,但它的质量非常糟糕

如果您仅限于播放器版本而不是特定的语言版本,我建议您看看Haxe。它有一些很好的用于处理XML的API,然后是AS2中的常规DOM API

我曾经有一个XML包装器类来减少与XML相关的操作的冗长性,但这么多年来我没有接触过AS2,我认为该类现在已经不可逆转地丢失了。。。但是,如果您的示例恰好是现实生活中的示例,那么为什么不直接使用DOM呢?对我来说,这似乎没有太多工作,除非您的项目中确实有过多的XML处理