Flex - 实现XML中特殊字符的转义、还原
1,问题描述
我们知道在 Flex 中书写 XML 时,遇到小于号(<)、大于号(>)等特殊字符都需要进行转义。具体的转义符如下:
- <:<
- >:>
- &:&
- ':'
- ":"
比如下面我们需要在一个 xml 对象中写入一段包含特殊符号的文字:
var name:String = "<<<hangge>>>" var device:XML = new XML('<device id="47" name="' + name + '" ></device>');
2,实现一个自动转义的方法
如果特殊符号很多,手动去一个个修改的话很麻烦,我们可以实现一个自定转义的方法,使用时直接调用就好了。
package { public class XMLUtilEx { //将字符串里的特殊符号进行转义.如 < 转成 > public static function toSafeXMLString(value:String):String { value = value.replace(/&/gi, "&"); value = value.replace(/</gi, "<"); value = value.replace(/>/gi, ">"); value = value.replace(/'/gi, "'"); value = value.replace(/"/gi, """); return value; } //将转义后的字符串还原.如 > 转成 < public static function fromSafeXMLString(value:String):String { value = value.replace(/&/gi, "&"); value = value.replace(/</gi, "<"); value = value.replace(/>/gi, ">"); value = value.replace(/'/gi, "'"); value = value.replace(/"/gi, "\""); return value; } } }
3,使用样例
var name:String = XMLUtilEx.toSafeXMLString("<<<hangge>>>"); var device:XML = new XML('<device id="47" name="' + name + '" ></device>');