下面是五个在XML文档中预定义好的实体:

实体必须以符号"&"开头,以符号";"结尾。
注意: 只有"<" 字符和"&"字符对于XML来说是严格禁止使用的。剩下的都是合法的,为了减少出错,使用实体是一个好习惯。
有时候这个转义字符没用,例如:
之前做的一个游戏,调用外部数据时,在flash中显示乱码,经过检查,发现了貌似flash AS2.0对这个符号"感冒"?因为这个XML之前我是用AS3.0调用时所作的一个游戏,没有类似的问题!
实例:
因为xml很长,我就贴出问题的一部分:
<answer_question>I'm a boy.</answer_question>这个是xml中显示的
flash 调用后显示为:I'm a boy.
后来上网找也没有找个究竟,试了好多方法都没有成功:
我先把我之前的解决思路贴出来,虽然都不成功,但是 为最后的方法奠定了一定的基础.
1,开始是以为XML编码问题,检查了确认是UTF-8.
2.后来我用了,转译字符:
<answer_question>I'm a boy.</answer_question>在XML里显示是正确的
调用后在flash里还是上述问题;
3.用<![CDATA[]]>:
<answer_question><![CDATA[I'm a boy.]]></answer_question>在XML里显示是正确的
调用后在flash里还是上述问题;
4.改用escape函数: var remember:String ="I'm a boy."
trace(remember)//I'm a boy.
var escapedremember:String = escape(remember);
trace(escapedremember)//I%26apos%3Bm%20a%20boy%2E
var unescapedremember:String = unescape(escapedremember);
trace(unescapedremember)//I'm a boy.
经测试还是不行。
后来没办法,只能自己手写一个函数,来强行对特殊符号的转化,代码如下,
var remember:String = _parent.tempString.toString();//这里将父级中的XML专为字符串,这里根据需要自己改动
for (var i:Number = 1; i<=remember.length; i++) {//因为"'"这个符号最开始的位置也要在第二个,所以i设为了1;
var mySubstring:String = new String();
mySubstring = remember.substr(i, 6);//如果LOAD进来的文本里有"'"这个,我就把它取出来,因为个数为6,所以对文本里所有的6个字符的,都进行取值判断
if (mySubstring == "'") {
First = remember.substr(0, i);//因为取值后,原文本变为了3个独立的字符串了
third = remember.substr(i+6)
remember = First+"'"+ third//这里进行转换,输出自己希望的符号
}
}
或者:
var remember:String = tempString.toString();
var mySubstring:String = remember.split("'").join("'")
其实最简单的还是用:TextField
TextField html属性设为 true,这样显示就可以了,忘记来博客更新了,谢谢daWei的提醒!
如果这个单引号是在xml的一个属性里的话,例如:
<Question>
<question id ="1">
<picture>1</picture>
<sound>1</sound>
<answer trued="I doesn't like to swim." />
<answer falsed="I doesn't like to eat pizza."/>
<answer falsed="I doesn't like to go shopping."/>
</question>
</Question>
在flash里面trace的话,他会显示为"¡¦";
用那个htmlText显示也不行,这个是时候只能用split("¡¦").join("'");这个方法
今天又来补充一下,在上面所讲的"如果这个单引号是在xml的一个属性里的话",他会显示为"¡¦";后来经过排查,原来是xml里的单引号是用了全角的单引号,如果改为半角的话,可以直接输出,不要考虑上述的转换字符函数,但是令人费解的是,如果用之前的中文的全角,虽然直接打开xml,会报错,不能显示,但是flash居然可读,而且可以显示,就造成了显示他会显示为"¡¦"的情况。看来这个还是AS2.0不稳定的表现,还是AS3.0好,不管在xml什么位置都可以正常显示,真替人省心啊~~~