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

问题描述 投票:0回答: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">
         <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)?

flash xml-parsing actionscript-2
2个回答
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
      }

}

0
投票

AS2曾经有一个XPath实现,甚至两个iirc。他们两个都超出了任何可能的原因,所以我并不是真的建议你使用它们,但它会很简单地解决这个和类似的问题。

http://osflash.org/xpath4as2这里是我能找到的东西。在mx。*包中也有一些东西,但它具有灾难性的质量......

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

我曾经有一个XML包装类来减少与XML相关的操作的冗长,但是我这么多年没碰到过AS2,我觉得这个类现在已经不可逆转了......但是,如果你的例子碰巧是现实生活中的例子 - 为什么不直接使用DOM?除非你的项目真的有过多的XML处理,否则对我来说似乎没那么多工作......

© www.soinside.com 2019 - 2024. All rights reserved.