AS3解码XML文件

时间:2016-03-20 05:31:16

标签: xml actionscript-3

我需要帮助解码我的XML文件。 它看起来像这样:

<?xml version="1.0" encoding="UTF-8"?>
<design>
    <images>
        <cell id="fill" file="cellImages/cellFill"/>
        <cell id="top" file="cellImages/cellTop"/>
        <cell id="topLeft" file="cellImages/cellTopLeft"/>
        <cell id="topRight" file="cellImages/cellTopRight"/>
        <cell id="bottom" file="cellImages/cellBottom"/>
        <cell id="bottomLeft" file="cellImages/cellBottomLeft"/>
        <cell id="bottomRight" file="cellImages/cellBottomRIght"/>
    </images>
</design> 

这是我的代码:

    function xmlLoaded(event:Event):void 
    { 
        _structXML = XML(_structLoader.data); 
        trace("Data loaded." + _structXML); 

        var a:XML;
        for each( a in _structXML.images.cell)
        {
            trace("test=" + a);
        }
    }       

所有跟踪的是XML和7“test =” 没有数据来自XML。

请帮助:)

3 个答案:

答案 0 :(得分:1)

它跟踪所有function remove($t) { return preg_replace('$/[0-9]+/!','',$t); } 值的空字符串,因为它们是空的XML节点(没有内容但只有属性)。使用a可以获取图片的文件。

答案 1 :(得分:0)

使用它:

trace("test id = " + a.attribute("id"));
trace("test file = " + a.attribute("file"));

答案 2 :(得分:0)

您使用"test=" + a正在将a XML对象转换为字符串,并且符合rules of XML toString()

  
      
  • 如果XML对象具有简单内容,toString()将返回XML对象的String内容,并带有以下剥离:开头   标记,属性,名称空间声明和结束标记。

  •   
  • 如果XML对象具有复杂内容,toString()将返回表示整个XML对象的XML编码字符串,包括开头   标记,属性,名称空间声明和结束标记。

  •   

因为您的<cell>节点具有“简单”内容(没有子节点),它会从输出中删除XML开始和结束标记,并且因为<cell>节点不包含任何内容,所以空字符串,不会在trace语句中输出任何可见的内容。

您可以使用toXMLString()获取XML的完整字符串表示形式(即上面列出的第二种行为,无论节点内容是“简单”还是“复杂”)。

trace("test=", a.toXMLString());

或者你可以输出属性:

trace(a.@id, "=", a.@file);

(注意:trace可以使用多个参数,您不需要将字符串连接与+一起使用。)