Xml Actionscript在不应删除空格时删除空格';T

Xml Actionscript在不应删除空格时删除空格';T,xml,actionscript-3,whitespace,Xml,Actionscript 3,Whitespace,我在ActionScript项目中使用URLLoader来读取一些XML。然后我处理它,并将其放入文本字段。一切看起来都很好。然而,我并不真的希望XML在我的SWF之外。所以我这样做了: var internalXML:XML = <Content><P>It was in <City>Paris</City> that I first took a <Activity>walk in nature</Activity>.

我在ActionScript项目中使用URLLoader来读取一些XML。然后我处理它,并将其放入文本字段。一切看起来都很好。然而,我并不真的希望XML在我的SWF之外。所以我这样做了:

var internalXML:XML = <Content><P>It was in <City>Paris</City> that I first 
took a <Activity>walk in nature</Activity>.</P></Content>
var internalXML:XML=

我第一次在巴黎 在大自然中散步。

也就是说,我获取了相同的XML,并直接在ActionScript中将其分配给XML对象实例。然后我运行完全相同的过程。但这一次,任何XML标记内容和纯文本之间的空白都被去掉了

所以上面的文字栏写着:“我第一次在大自然中觉醒是在巴黎。”

在这两种情况下,我都得到了XML.ignoreWhitespace=false。我还尝试了XML.prettyPrinting=false。没有帮助


有人知道会发生什么吗?

可能是在编译时,而不是在运行时进行了空格修剪(因此XML.IgnoreWhitespace是无效的)

要将XML逐字保留到运行时(就像之前加载它时一样),只需将其放入字符串中:


var internalXML:XML=XML(“我是在巴黎第一次在大自然中散步。

非常好的建议,谢谢卡梅伦。与此同时,我发现了一个更简单的解决方案,我想它也能实现同样的效果。我在主类的处理程序中有XML.ignoreWhitespace=false。我把它移到了类外,放在import语句后面。现在它起作用了。如果ignoreWhitespace是一个静态属性,那么它在哪里声明又有什么关系呢?更一般地说,您如何知道在编译时做了什么以及在运行时做了什么?因为ignoreWhitespace是一个静态属性,所以设置在哪里并不重要(尽管有时Flash中会有一些奇怪的bug)。也许你认为你的代码没有被执行的时候,它没有被执行?而且,我只是猜测编译时的事情。实际上,我不知道内联XML会发生什么情况(我也不完全确定它是否有文档记录)。作为一般的经验法则,可以在编译时确定的事情通常会在编译时完成,因为它只完成一次,而不必在运行时完成。你必须阅读文档或尝试一些东西来确定答案。