在as3中使用特殊字符的时候,不小心就会出现错误,要么字符没有被显示,要么显示的不对,本文章就此做一个简单的分析,如有更好的分析,请一定要跟贴。
sample.xml和sample_cdata.xml是本例需要用到的xml文件,请点击查看他们的内容,本例以特殊字符< 和> 为例;文本字符串变量为txt, 显示文本的名称为shwo_txt。
由于html和xml中<和>有特殊含义,不能直接使用,使用这两个字符时,应使用他们的转义序列,也即<和>,故在xml文件中< 和 >会被<和>替代,用法请见sample.xml。
CDATA用于不想被xml解析器解析的文本数据,使用格式为,字符串部分都会被认为是纯粹的字符串,就算包含特殊的字符,也被认为是普通的字符串,用法请见sample_cdata.xml。
xml文件准备好之后,下一步就是使用程序加载xml文件,并根据xml的内容显示在文本框中(show_txt),这里使用URLLoader进 行加载,加载完成后获取字符串txt, 然后根据你所点击的按钮进行相应的显示,一下是演示文件,其中”普通”表示不使用CDATA的xml文件,text表示文本框不对html标签进行支 持,htmlText说明对html标签进行支持(注意:flash只支持部分html标签)。
可以看到,在xml为普通(没有使用CDATA)时,<和> 会首先被xml解析,转义为<和>,当字符串txt传递给show_txt的text属性时,因为不使用html标签功能,所以不会发生错 误,显示结果正确,而当txt传递给show_txt的htmlText属性时,因为使用了html标签功能,所以特殊字符<和>会被认为是 非法字符,而不予显示。
同理,当xml使用了CDATA时,xml在对文本进行解析时,会把<和>认为是单纯的字符而不予理会,当字符串 txt传递给show_txt的text属性时,自然,<和>就会显示出来,而当txt传递给show_txt的 htmlText属性时,因为使用了html标签功能,<和>会被转义为<和>,此时结果显示正确。
所以,要注意html和xml都会对特殊字符进行转义,以避免错误的发生
本文作者:未知