【问题标题】:how to find specific XML data by attribute name/value in flash AS2?如何在 Flash AS2 中按属性名称/值查找特定的 XML 数据?
【发布时间】:2012-04-15 00:46:39
【问题描述】:

给定以下 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('thumb');

Action Script 2中是否有这样的方法(不能使用AS3)?

【问题讨论】:

    标签: flash xml-parsing actionscript-2


    【解决方案1】:

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

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

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

    我以前有一个XML-wrapper类来减少XML相关操作的冗长,但是这么多年没有接触AS2,我认为现在这个类已经不可逆转地丢失了......但是,如果你的例子恰好是现实生活中的例子——为什么不直接使用 DOM?对我来说,这似乎没什么工作,除非您的项目中确实有过多的 XML 处理...

    【讨论】:

      【解决方案2】:

      刚刚意识到我已将您的父标签更改为集合。

      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
            }
      
      }
      

      【讨论】:

        猜你喜欢
        • 2016-12-28
        • 2020-04-14
        • 1970-01-01
        • 2014-06-02
        • 1970-01-01
        • 2011-02-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多