Java用非法XML字符解组xml

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java用非法XML字符解组xml相关的知识,希望对你有一定的参考价值。

我正在尝试用javax.xml.bind.Unmarshaller解组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"
        + "ud800udc00-udbffudfff"
        + "]+";

public static String stripNonValidXML11Characters(String xml) {
    return xml.replaceAll(illegalXML11CharactersPattern, "");
}
答案

最后,我完成了以下方法:

xml = org.apache.commons.lang3.StringEscapeUtils.unescapeXml(StringEscapeUtils.escapeXml10(xml));

以上是关于Java用非法XML字符解组xml的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 spring 集成 dsl 解组 xml

使用 JAXB 解组 xml 字符串但得到空字符串

如何将 SOAP XML 解组为 Java 对象 [重复]

Java/JAXB:根据属性将 Xml 解组为特定子类

用freemarker 生成word,打开word xml字符非法!这是啥原因?

用freemarker 生成word,打开word xml字符非法!这是啥原因?