java - DocumentHelper 要求 xml 声明版本为小写

标签 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);

它打印错误:

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/

相关文章:

java - 删除条形图中条形之间的空格?

java - 如何在 fragment 中添加菜单?

java - MySQL DATETIME 和 TIMESTAMP 到 java.sql.Timestamp 到 ZonedDateTime

c# - 使用 XMLSPy 2010rel3sp1 生成 C# 类

java - 如何在Java中知道JAXB中的下一个元素

java - 创建没有小数分隔符的小数

java - 在 Vert.X 中从 NetServer 流式传输 XML

java - Dom4j 规则与所有预期节点不匹配

java - 转义 XML 字符的最佳实践?

xml - Scala 集合类型之间的隐式转换