这可能对你有用。
private static Map<String, String> entityMap = new HashMap<String, String>();
static{
entityMap.put("nbsp", " ");
entityMap.put("iexcl", "¡");
entityMap.put("cent", "¢");
entityMap.put("pound", "£");
entityMap.put("curren", "¤");
entityMap.put("yen", "¥");
entityMap.put("brvbar", "¦");
entityMap.put("sect", "§");
entityMap.put("uml", "¨");
entityMap.put("copy", "©");
entityMap.put("ordf", "ª");
entityMap.put("laquo", "«");
entityMap.put("not", "¬");
entityMap.put("shy", "­");
entityMap.put("reg", "®");
entityMap.put("macr", "¯");
entityMap.put("deg", "°");
entityMap.put("plusmn", "±");
entityMap.put("sup2", "²");
entityMap.put("sup3", "³");
entityMap.put("acute", "´");
entityMap.put("micro", "µ");
entityMap.put("para", "¶");
entityMap.put("middot", "·");
entityMap.put("cedil", "¸");
entityMap.put("sup1", "¹");
entityMap.put("ordm", "º");
entityMap.put("raquo", "»");
entityMap.put("frac14", "¼");
entityMap.put("frac12", "½");
entityMap.put("frac34", "¾");
entityMap.put("iquest", "¿");
entityMap.put("Agrave", "À");
entityMap.put("Aacute", "Á");
entityMap.put("Acirc", "Â");
entityMap.put("Atilde", "Ã");
entityMap.put("Auml", "Ä");
entityMap.put("Aring", "Å");
entityMap.put("AElig", "Æ");
entityMap.put("Ccedil", "Ç");
entityMap.put("Egrave", "È");
entityMap.put("Eacute", "É");
entityMap.put("Ecirc", "Ê");
entityMap.put("Euml", "Ë");
entityMap.put("Igrave", "Ì");
entityMap.put("Iacute", "Í");
entityMap.put("Icirc", "Î");
entityMap.put("Iuml", "Ï");
entityMap.put("ETH", "Ð");
entityMap.put("Ntilde", "Ñ");
entityMap.put("Ograve", "Ò");
entityMap.put("Oacute", "Ó");
entityMap.put("Ocirc", "Ô");
entityMap.put("Otilde", "Õ");
entityMap.put("Ouml", "Ö");
entityMap.put("times", "×");
entityMap.put("Oslash", "Ø");
entityMap.put("Ugrave", "Ù");
entityMap.put("Uacute", "Ú");
entityMap.put("Ucirc", "Û");
entityMap.put("Uuml", "Ü");
entityMap.put("Yacute", "Ý");
entityMap.put("THORN", "Þ");
entityMap.put("szlig", "ß");
entityMap.put("agrave", "à");
entityMap.put("aacute", "á");
entityMap.put("acirc", "â");
entityMap.put("atilde", "ã");
entityMap.put("auml", "ä");
entityMap.put("aring", "å");
entityMap.put("aelig", "æ");
entityMap.put("ccedil", "ç");
entityMap.put("egrave", "è");
entityMap.put("eacute", "é");
entityMap.put("ecirc", "ê");
entityMap.put("euml", "ë");
entityMap.put("igrave", "ì");
entityMap.put("iacute", "í");
entityMap.put("icirc", "î");
entityMap.put("iuml", "ï");
entityMap.put("eth", "ð");
entityMap.put("ntilde", "ñ");
entityMap.put("ograve", "ò");
entityMap.put("oacute", "ó");
entityMap.put("ocirc", "ô");
entityMap.put("otilde", "õ");
entityMap.put("ouml", "ö");
entityMap.put("divide", "÷");
entityMap.put("oslash", "ø");
entityMap.put("ugrave", "ù");
entityMap.put("uacute", "ú");
entityMap.put("ucirc", "û");
entityMap.put("uuml", "ü");
entityMap.put("yacute", "ý");
entityMap.put("thorn", "þ");
entityMap.put("yuml", "ÿ");
entityMap.put("fnof", "À");
entityMap.put("Alpha", "Α");
entityMap.put("Beta", "Β");
entityMap.put("Gamma", "Γ");
entityMap.put("Delta", "Δ");
entityMap.put("Epsilon", "Ε");
entityMap.put("Zeta", "Ζ");
entityMap.put("Eta", "Η");
entityMap.put("Theta", "Θ");
entityMap.put("Iota", "Ι");
entityMap.put("Kappa", "Κ");
entityMap.put("Lambda", "Λ");
entityMap.put("Mu", "Μ");
entityMap.put("Nu", "Ν");
entityMap.put("Xi", "Ξ");
entityMap.put("Omicron", "Ο");
entityMap.put("Pi", "Π");
entityMap.put("Rho", "Ρ");
entityMap.put("Sigma", "Σ");
entityMap.put("Tau", "Τ");
entityMap.put("Upsi", "Υ");
entityMap.put("Phi", "Φ");
entityMap.put("Chi", "Χ");
entityMap.put("Psi", "Ψ");
entityMap.put("Omega", "Ω");
entityMap.put("alpha", "α");
entityMap.put("beta", "β");
entityMap.put("gamma", "γ");
entityMap.put("delta", "δ");
entityMap.put("epsi", "ε");
entityMap.put("zeta", "ζ");
entityMap.put("eta", "η");
entityMap.put("theta", "θ");
entityMap.put("iota", "ι");
entityMap.put("kappa", "κ");
entityMap.put("lambda", "λ");
entityMap.put("mu", "μ");
entityMap.put("nu", "ν");
entityMap.put("xi", "ξ");
entityMap.put("omicron", "ο");
entityMap.put("pi", "π");
entityMap.put("rho", "ρ");
entityMap.put("sigmaf", "ς");
entityMap.put("sigma", "σ");
entityMap.put("tau", "τ");
entityMap.put("upsi", "υ");
entityMap.put("phi", "φ");
entityMap.put("chi", "χ");
entityMap.put("psi", "ψ");
entityMap.put("omega", "ω");
entityMap.put("theta", "ϑ");
entityMap.put("upsih", "ϒ");
entityMap.put("piv", "ϖ");
entityMap.put("bull", "•");
entityMap.put("hellip", "…");
entityMap.put("prime", "′");
entityMap.put("Prime", "″");
entityMap.put("oline", "‾");
entityMap.put("frasl", "⁄");
entityMap.put("weierp", "℘");
entityMap.put("image", "ℑ");
entityMap.put("real", "ℜ");
entityMap.put("trade", "™");
entityMap.put("alefsym", "ℵ");
entityMap.put("larr", "←");
entityMap.put("uarr", "↑");
entityMap.put("rarr", "→");
entityMap.put("darr", "↓");
entityMap.put("harr", "↔");
entityMap.put("crarr", "↵");
entityMap.put("lArr", "⇐");
entityMap.put("uArr", "⇑");
entityMap.put("rArr", "⇒");
entityMap.put("dArr", "⇓");
entityMap.put("hArr", "⇔");
entityMap.put("forall", "∀");
entityMap.put("part", "∂");
entityMap.put("exist", "∃");
entityMap.put("empty", "∅");
entityMap.put("nabla", "∇");
entityMap.put("isin", "∈");
entityMap.put("notin", "∉");
entityMap.put("ni", "∋");
entityMap.put("prod", "∏");
entityMap.put("sum", "−");
entityMap.put("minus", "−");
entityMap.put("lowast", "∗");
entityMap.put("radic", "√");
entityMap.put("prop", "∝");
entityMap.put("infin", "∞");
entityMap.put("ang", "∠");
entityMap.put("and", "⊥");
entityMap.put("or", "⊦");
entityMap.put("cap", "∩");
entityMap.put("cup", "∪");
entityMap.put("int", "∫");
entityMap.put("there4", "∴");
entityMap.put("sim", "∼");
entityMap.put("cong", "≅");
entityMap.put("asymp", "≅");
entityMap.put("ne", "≠");
entityMap.put("equiv", "≡");
entityMap.put("le", "≤");
entityMap.put("ge", "≥");
entityMap.put("sub", "⊂");
entityMap.put("sup", "⊃");
entityMap.put("nsub", "⊄");
entityMap.put("sube", "⊆");
entityMap.put("supe", "⊇");
entityMap.put("oplus", "⊕");
entityMap.put("otimes", "⊗");
entityMap.put("perp", "⊥");
entityMap.put("sdot", "⋅");
entityMap.put("lceil", "⌈");
entityMap.put("rceil", "⌉");
entityMap.put("lfloor", "⌊");
entityMap.put("rfloor", "⌋");
entityMap.put("lang", "〈");
entityMap.put("loz", "◊");
entityMap.put("spades", "♠");
entityMap.put("clubs", "♣");
entityMap.put("hearts", "♥");
entityMap.put("diams", "♦");
entityMap.put("quot", """);
entityMap.put("amp", "&");
entityMap.put("lt", "<");
entityMap.put("gt", ">");
entityMap.put("OElig", "Œ");
entityMap.put("oelig", "œ");
entityMap.put("Scaron", "Š");
entityMap.put("scaron", "š");
entityMap.put("Yuml", "Ÿ");
entityMap.put("circ", "ˆ");
entityMap.put("tilde", "˜");
entityMap.put("ensp", " ");
entityMap.put("emsp", " ");
entityMap.put("thinsp", " ");
entityMap.put("zwnj", "‌");
entityMap.put("zwj", "‍");
entityMap.put("lrm", "‎");
entityMap.put("rlm", "‏");
entityMap.put("ndash", "–");
entityMap.put("mdash", "—");
entityMap.put("lsquo", "‘");
entityMap.put("rsquo", "’");
entityMap.put("sbquo", "‚");
entityMap.put("ldquo", "“");
entityMap.put("rdquo", "”");
entityMap.put("bdquo", "„");
entityMap.put("dagger", "†");
entityMap.put("Dagger", "‡");
entityMap.put("permil", "‰");
entityMap.put("lsaquo", "‹");
entityMap.put("rsaquo", "›");
}
然后我只是将数据作为 DOCTYPE 附加到文档中
StringBuffer buffer = new StringBuffer();
buffer.append("<?xml version=\"1.0\"?> " + " <!DOCTYPE some_name [ ");
Iterator<Entry<String, String>> iterator = entityMap.entrySet().iterator();
while (iterator.hasNext()) {
Entry<String, String> entry = iterator.next();
buffer.append("<!ENTITY " + entry.getKey() + " \"" + entry.getValue() + "\">");
}
buffer.append(" ]>");
convertedData = buffer.toString() + convertedData;