我正在维护一个旧项目,迁移到新的服务器环境后,
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
但是当我尝试解析 xml 字符串时:
Document dom = DocumentHelper.parseText(xml);
它打印错误:
location error:Error on line 1 of document : The version is required in the XML declaration. Nested exception: The version is required in the XML declaration.
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 声明的大写字母吗?
最佳答案
报告问题的是底层 XML 解析器。最简单的解决方法可能是“编辑”输入文件:
Document doc = DocumentHelper.parseText(xml.replaceAll("^<\\?xml +Version", "<?xml version"));
关于java - DocumentHelper 要求 xml 声明版本为小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45812448/