Java tutorial
//package com.java2s; /** * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. * * Copyright (c) 2006 Sun Microsystems Inc. All Rights Reserved * * The contents of this file are subject to the terms * of the Common Development and Distribution License * (the License). You may not use this file except in * compliance with the License. * * You can obtain a copy of the License at * https://opensso.dev.java.net/public/CDDLv1.0.html or * opensso/legal/CDDLv1.0.txt * See the License for the specific language governing * permission and limitations under the License. * * When distributing Covered Code, include this CDDL * Header Notice in each file and include the License file * at opensso/legal/CDDLv1.0.txt. * If applicable, add the following below the CDDL Header, * with the fields enclosed by brackets [] replaced by * your own identifying information: * "Portions Copyrighted [year] [name of copyright owner]" * * $Id: XMLUtils.java,v 1.15 2009/10/19 18:19:20 asyhuang Exp $ * */ public class Main { private static final String INVALID_XML_CHARACTERS = "[\u0000-\u0008\u000b-\u001f\ufffe\uffff]"; /** * Removes invalid XML characters from the input text and then replaces XML special character <code>&</code>, * <code><</code>, <code>></code>, <code>"</code>, <code>'</code> with corresponding entity references. * * @param text The input that needs to be escaped. May be null. * @return String with the special characters replaced with entity references. May be null. */ public static String escapeSpecialCharacters(String text) { text = removeInvalidXMLChars(text); if (text == null || text.isEmpty()) { return text; } final StringBuilder sb = new StringBuilder(text.length()); for (int i = 0; i < text.length(); i++) { char c = text.charAt(i); switch (c) { case '&': sb.append("&"); break; case '<': sb.append("<"); break; case '>': sb.append(">"); break; case '\"': sb.append("""); break; case '\'': sb.append("'"); break; case '\n': sb.append("
"); break; case '\r': sb.append("
"); break; default: sb.append(c); } } return sb.toString(); } /** * Remove invalid XML characters from a string. * @param text the text to cleanse. * @return cleansed text or the original string if it is null or empty */ public static String removeInvalidXMLChars(String text) { if (text == null || text.isEmpty()) { return text; } return text.replaceAll(INVALID_XML_CHARACTERS, ""); } }