Flex - 实现XML中特殊字符的转义、还原
作者:hangge | 2017-03-05 08:10
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>');
全部评论(0)