Here you can find the source of removeIllegalXMLChars(String in)
Parameter | Description |
---|---|
in | String to parse |
public static String removeIllegalXMLChars(String in)
//package com.java2s; /*// w w w . j ava 2 s . co m * iteraplan is an IT Governance web application developed by iteratec, GmbH * Copyright (C) 2004 - 2014 iteratec, GmbH * * This program is free software; you can redistribute it and/or modify it under * the terms of the GNU Affero General Public License version 3 as published by * the Free Software Foundation with the addition of the following permission * added to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED * WORK IN WHICH THE COPYRIGHT IS OWNED BY ITERATEC, ITERATEC DISCLAIMS THE * WARRANTY OF NON INFRINGEMENT OF THIRD PARTY RIGHTS. * * This program 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 Affero General Public License * along with this program; if not, see http://www.gnu.org/licenses or write to * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * MA 02110-1301 USA. * * You can contact iteratec GmbH headquarters at Inselkammerstr. 4 * 82008 Munich - Unterhaching, Germany, or at email address info@iteratec.de. * * The interactive user interfaces in modified source and object code versions * of this program must display Appropriate Legal Notices, as required under * Section 5 of the GNU Affero General Public License version 3. * * In accordance with Section 7(b) of the GNU Affero General Public License * version 3, these Appropriate Legal Notices must retain the display of the * "iteraplan" logo. If the display of the logo is not reasonably * feasible for technical reasons, the Appropriate Legal Notices must display * the words "Powered by iteraplan". */ import java.util.ArrayList; import java.util.List; public class Main { private static final List<Character> LEGAL_XMLCHARS_LT0X20 = new ArrayList<Character>(); /** * Remove illegal characters like 0x11 (vertical tab) and others that are not allowed in xml from * the input string. * <p> * Characters removed are chars that are below #x20, except #x9, #xA, #xD. Also see * http://www.w3.org/TR/REC-xml/#charsets * </p> * * @param in * String to parse * @return String without illegal xml characters */ public static String removeIllegalXMLChars(String in) { if (in == null) { return null; } StringBuilder out = new StringBuilder(in.length()); for (int i = 0; i < in.length(); i++) { char c = in.charAt(i); if (c < 0x20) { // check only chars < 0x20 Character val = Character.valueOf(in.charAt(i)); if (LEGAL_XMLCHARS_LT0X20.contains(val)) { out.append(c); } // else { // NOPMD // // do nothing, character is removed // } } else { out.append(c); } } return out.toString(); } }