Java 怎么转义XML属性值特殊字符

2019年8月1日23:37:01Java 怎么转义XML属性值特殊字符已关闭评论 1,055 727字阅读2分25秒

1.简介

Java 怎么转义XML属性值特殊字符?——请看下文。

2.示例代码

/**
 * 版权所有 编程十万个怎么办(www.tah1986.com)
 */



public class Main {
    public static void main(String[] argv) throws Exception {
        String text = "tah1986.com";
        System.out.println(escapeAttr(text));
    }

    
    public static String escapeAttr(String text) {
        int len = text.length();
        StringBuilder result = new StringBuilder(len);
        for (int i = 0; i < len; ++i) {
            char c = text.charAt(i);
            if (isInvalidXml(c))
                continue;
            switch (c) {
            case '>':
                result.append(">");
                break;
            case '<':
                result.append("<");
                break;
            case '&':
                result.append("&");
                break;
            case '"':
                result.append(""");
                break;
            default:
                result.append(c);
            }
        }
        return result.toString();
    }

    /** See http:
    private static boolean isInvalidXml(char c) {
        return !(c == 0x9 || c == 0xA || c == 0xD
                || (c >= 0x20 && c <= 0xD7FF)
                || (c >= 0xE000 && c <= 0xFFFD) || (c >= 0x10000 && c <= 0x10FFFF));
    }
}

 
编程十万个怎么办