【问题标题】:Converting xml attribute to array将xml属性转换为数组
【发布时间】:2010-03-07 18:36:02
【问题描述】:

在以下 XML 中:

<myxml>
    <photos>
        <photo url="1.jpg"/>
        <photo url="2.jpg"/>
        <photo url="3.jpg"/>
        <photo url="4.jpg"/>
     </photos>
</myxml>

如何使用 e4x 提取 url 并将它们推送到具有最少代码的数组中?

【问题讨论】:

    标签: xml apache-flex parsing e4x


    【解决方案1】:

    就一行代码:

    var myArray:Array = Array(myXML..@url);
    trace(myArray); //outputs: 1.jpg2.jpg3.jpg4.jpg
    

    编辑:实际上,上面的行生成了一个包含所有 url 的长字符串的数组。为了生成有用的数组,您需要这样做:

    var myArray:Array = new Array();
    for each(var item:XML in myXML..photo){
      myArray.push(item.@url);
    }
    trace(myArray); //outputs: 1.jpg,2.jpg,3.jpg,4.jpg
    

    【讨论】:

    • 这不会(我假设你想使用Array.prototype.slice.call)因为它期望length 是一个数字,而不是一个函数。
    • ???你在说什么?您的评论与我的代码示例无关?
    【解决方案2】:

    试试看:

    var picXML:XML;
    var arrayPic:Array = new Array();
    var stream:FileStream = new FileStream();
     stream.open("file.xml", FileMode.READ);
    picXML = XML(stream.readUTFBytes(stream.bytesAvailable));
    stream.close();
    
    for(var i:int = 0; i < calendarsXML.photos.photo.length();i++)
        {
                 arrayPic.push(myxml.photos.photo[i].@url);
        }
    

    【讨论】:

      猜你喜欢
      • 2021-10-26
      • 1970-01-01
      • 2017-06-17
      • 1970-01-01
      • 1970-01-01
      • 2016-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多