Java examples for XML:XML String Escape
Converts a plain text string into valid XML string Output stream must convert stream to UTF-8 when saving to disk.
/* ************************************************************************* * * TMPotter - Bi-text Aligner/TMX Editor * * Copyright (C) 2015 Hiroshi Miura//from w ww . j a v a 2 s .c o m * * Part of this come from OmegaT. * * Copyright (C) 2000-2006 Keith Godfrey and Maxym Mykhalchuk * * This file is part of TMPotter. * * TMPotter is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * TMPotter is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with TMPotter. If not, see http://www.gnu.org/licenses/. * * *************************************************************************/ //package com.java2s; public class Main { public static void main(String[] argv) throws Exception { String plaintext = "java2s.com"; System.out.println(getValidXMLText(plaintext)); } /** * Converts a plaintext string into valid XML string * * Output stream must convert stream to UTF-8 when saving to disk. * * @param plaintext * @return */ final public static String getValidXMLText(final String plaintext) { final StringBuilder out = new StringBuilder(); final String text = fixChars(plaintext); for (int i = 0; i < text.length(); i++) out.append(getValidXMLChar(text.charAt(i))); return (out.toString()); } /** * Replace invalid XML chars by spaces. See supported chars at * http://www.w3.org/TR/2006/REC-xml-20060816/#charsets. * * @param str input stream * @return result stream */ final public static String fixChars(final String str) { char[] result = new char[str.length()]; for (int i = 0; i < str.length(); i++) { char c = str.charAt(i); if (c < 0x20) { if (c != 0x09 && c != 0x0A && c != 0x0D) c = ' '; } else if (c >= 0x20 && c <= 0xD7FF) { } else if (c >= 0xE000 && c <= 0xFFFD) { } else if (c >= 0x10000 && c <= 0x10FFFF) { } else c = ' '; result[i] = c; } return (new String(result)); } /** * Converts a single char into a valid XML character * * Output stream must convert stream to UTF-8 when saving to disk. */ private static String getValidXMLChar(final char ch) { switch (ch) { //case '\'': return "'"; case '&': return "&"; case '>': return ">"; case '<': return "<"; case '"': return """; default: return String.valueOf(ch); } } }