DocumentHelper要求xml decalration版本为小写

时间:2017-08-22 08:21:11

标签: java xml dom4j

我正在维护一个旧项目,并在迁移到新的服务器环境后

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;

但是当我尝试解析xml字符串时:

Document dom = DocumentHelper.parseText(xml);

它打印错误:

  

位置错误:文档第1行出错:XML声明中需要该版本。嵌套异常:XML声明中需要该版本。

xml的内容是:

<?xml Version="1.0" encoding="UTF-8"?>
<Page>
<Common>
<Device Version="1.0.0" Type="H9" Customer="general " />
<Function Id="GetConfig" WatchId="355372020368356" Style="2"/>
</Common>
</Page>

当我将<?xml Version更改为小写<?xml version时,它会成功通过。

但是xml的源代码是我无法改变的,有没有办法配置xml解析器来接受xml声明的大写?

1 个答案:

答案 0 :(得分:0)

它是报告问题的基础XML解析器。最简单的解决方法可能是&#34;编辑&#34;输入文件:

    Document doc = DocumentHelper.parseText(xml.replaceAll("^<\\?xml +Version", "<?xml version"));