as3实现XML中特殊字符的转义还原

来源:互联网 发布:selected知乎 编辑:程序博客网 时间:2024/05/19 13:45

实现XML中特殊字符的转义、还原

我们知道在 Flex 中书写 XML 时,遇到小于号(<)、大于号(>)等特殊字符都需要进行转义。具体的转义符如下:
  • <:&lt; 
  • >:&gt;
  • &:&amp; 
  • ':&apos; 
  • ":&quot; 

比如下面我们需要在一个 xml 对象中写入一段包含特殊符号的文字:
1
2
var name:String "<<<hangge>>>"
var device:XML = new XML('<device id="47" name="' + name + '" ></device>');

如果这段文字里的特殊符号如果不进行转义的话就会运行报“XML 分析器失败”错误。
原文:Flex - 实现XML中特殊字符的转义、还原

2,实现一个自动转义的方法

如果特殊符号很多,手动去一个个修改的话很麻烦,我们可以实现一个自定转义的方法,使用时直接调用就好了。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
package
{
    public class XMLUtilEx
    {  
        //将字符串里的特殊符号进行转义.如 < 转成  &gt;
        public static function toSafeXMLString(value:String):String {
            value = value.replace(/&/gi, "&amp;");
            value = value.replace(/</gi, "&lt;");
            value = value.replace(/>/gi, "&gt;");
            value = value.replace(/'/gi, "&apos;");
            value = value.replace(/"/gi, "&quot;");
            return value;
        }
         
        //将转义后的字符串还原.如  &gt; 转成  <
        public static function fromSafeXMLString(value:String):String {
            value = value.replace(/&amp;/gi, "&");
            value = value.replace(/&lt;/gi, "<");
            value = value.replace(/&gt;/gi, ">");
            value = value.replace(/&apos;/gi, "'");
            value = value.replace(/&quot;/gi, "\"");
            return value;
        }
    }
}

3,使用样例

1
2
var name:String = XMLUtilEx.toSafeXMLString("<<<hangge>>>");
var device:XML = new XML('<device id="47" name="' + name + '" ></device>');

原文链接:http://www.hangge.com/blog/cache/detail_1571.html
原创粉丝点击