0
私はjavax.xml.bind.Unmarshaller
でXML文字列を非整列化しようとしているが、次のエラーを受けています:JavaのアンマーシャリングXML
Caused by: org.xml.sax.SAXParseException: An invalid XML character (Unicode: 0x13) was found in the element content of the document.
は、入力文字列からすべての違法なXML文字を削除する任意のユニバーサルソリューションがありますか?
は例えば、私は次のいずれかを使用しようとしたが、それは助けにはならない:
public static String illegalXML11CharactersPattern = "[^"
+ "\u0001-\uD7FF"
+ "\uE000-\uFFFD"
+ "\ud800\udc00-\udbff\udfff"
+ "]+";
public static String stripNonValidXML11Characters(String xml) {
return xml.replaceAll(illegalXML11CharactersPattern, "");
}
あなたはあなたのXMLに目を通す必要があります。 '0x13'は実際には"キャリッジリターン "です。おそらくXMLタグや属性のどこかにあります。実際には、XML値には5つのXML無効な文字しかありません:http://keylimetie.com/blog/2008/9/25/how-to-safely-escape-invalid-xml-characters/ – Vadim