我有一个XML文档,我必须硬编码到AS中(是的,我有)。我试图将这个xml分配给一个字符串,但由于某种原因,xml doc声明被分配了?!
var xmlDoc:String = '<?xml version="1.0" encoding="UTF-8"?>';
xmlDoc += '<?dctm xml_app=" ......
当我追踪xmlDoc字符串时,我总是只得到“&lt;?xml version =”1.0“encoding =”UTF-8“?&gt;”
我已经尝试将整个文档放在一个由s包围的字符串中,并将字符串连接起来。为什么字符串var只被分配到第一行?
尝试直接从文件
加载xml文档时得到相同的结果var xmlDocument:XML = new XML();
xmlDocument.load("myxml.xml");
xmlDocument.onLoad(success:Boolean)
{
if(success)
{
trace(xmlDocument.toString()); //Just the first line is printed
}
}
由于
答案 0 :(得分:2)
为什么不将它分配给XML变量..?
var xml:XML =
<shop>
<item id="10">
<price>20</price>
</item>
</shop>;
看起来你正在尝试使用AS2。
您需要将xmlDocument.toString()
替换为this
,如下所示:
var xml:XML = new XML();
xml.onLoad = function(success:Boolean):Void
{
if(success)
{
trace(this);
}
}
xml.load("file.xml");
答案 1 :(得分:1)
我看到的一些事情,你发布的问题数量有限
首先你需要使用空格
//最后一个空格?
var xmlDoc:String = '<?xml version="1.0" encoding="UTF-8"?>';
//should be
var xmlDoc:String = '<?xml version="1.0" encoding="UTF-8" ?>';
其次,我忘记了它的名字,但在你的第二行,你开始了?再次这应该是你的根节点定义
// this is bad
xmlDoc += '<?dctm xml_app=" ......
// should be assuming dctm is your node name
xmlDoc += '<dctm xml_app=" ......
总结一下,请注意间距,不要在节点名称中使用问号。
如果你使用cData
,也试着逃避或稍后你会遇到问题var xmlDoc:String = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>";