有关 Java 上无效的 XML 字符的错误

2022-09-02 09:48:09

在Java上解析xml文件时,我得到错误:

An invalid XML character (Unicode: 0x0) was found in the element content of the document.

xml 来自 Web 服务。

问题是,只有当Web服务在localhost(windows+ tomcat)上运行时,我才会收到错误,但当Web服务在线(linux + tomcat)时,我不会收到错误。

如何替换无效的字符?谢谢。


答案 1

Unicode 字符表示您正在提取的数据在某处包含 NULL(这在 XML 中是不允许的,因此会出现错误)。0x0NULL

确保首先找出导致 NULL 的原因。

另外,您如何与 Web 服务交互?如果您使用的是安讯士,请确保 WSDL 为传入和传出的数据指定了一些编码。


答案 2

使用此代码修复:

String cleanXMLString = null;
Pattern pattern = null;
Matcher matcher = null;
pattern = Pattern.compile("[\\000]*");
matcher = pattern.matcher(dirtyXMLString);
if (matcher.find()) {
   cleanXMLString = matcher.replaceAll("");
}

推荐