Java 怎么采用XML 1.0中预先定义的实体,并将其字符表示转换为适合XML属性的适当实体引用

2019年7月21日19:42:38Java 怎么采用XML 1.0中预先定义的实体,并将其字符表示转换为适合XML属性的适当实体引用已关闭评论 339 968字阅读3分13秒

1.简介

Java 怎么采用XML 1.0中预先定义的实体,并将其字符表示转换为适合XML属性的适当实体引用?——请看下文。

2.示例代码

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

import org.apache.log4j.Logger;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.
     
    public static String escapeElementEntities(String text) {
        StringBuffer buffer = new StringBuffer();
        char[] block = null;
        int i;
        int last = 0;
        int size = text.length();

        for (i = 0; i < size; i++) {
            String entity = null;
            char c = text.charAt(i);

            switch (c) {
            case '<':
                entity = "<";

                break;

            case '>':
                entity = ">";

                break;

            case '&':
                entity = "&";

                break;

            case '\t':
            case '\n':
            case '\r':

                
                
                
                

                break;

            default:

                if ((c < 32)) {
                    entity = "&#" + (int) c + ";";
                }
                
                
                

                break;
            }

            if (entity != null) {
                if (block == null) {
                    block = text.toCharArray();
                }

                buffer.append(block, last, i - last);
                buffer.append(entity);
                last = i + 1;
            }
        }

        if (last == 0) {
            return text;
        }

        if (last < size) {
            if (block == null) {
                block = text.toCharArray();
            }

            buffer.append(block, last, i - last);
        }

        String answer = buffer.toString();
        buffer.setLength(0);

        return answer;
    }
}

 
继续阅读