我需要帮助解码我的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。
请帮助:)
答案 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
可以使用多个参数,您不需要将字符串连接与+
一起使用。)