当前位置: 首页 > news >正文

开发避坑指南(38):DOM4J解析XML文件报错“前言中不允许有内容”的解决方案

报错信息

org.dom4j.DocumentException: Error on line 1 of document  : Content is not allowed in prolog. Nested exception: Content is not allowed in prolog.at org.dom4j.io.SAXReader.read(SAXReader.java:482)at org.dom4j.DocumentHelper.parseText(DocumentHelper.java:278)

中文错误信息:

org.dom4j.DocumentException: Error on line 1 of document  :前言中不允许有内容.

报错代码

try {Document document = DocumentHelper.parseText(xmlContext);
} catch (Exception e) {e.printStackTrace();
}

异常分析

该错误通常由XML文件格式问题引起,UTF-8编码的XML文件若包含BOM头(EF BB BF字节序标记),会导致解析器识别异常。

解决办法

Java代码中通过BOMInputStream过滤XML文件中的BOM头。参考代码如下:

try {InputStream in = new ByteArrayInputStream(xmlStr1.getBytes());BOMInputStream bomIn = new BOMInputStream(in, false);cleanXml = IOUtils.toString(bomIn, StandardCharsets.UTF_8);xmlStr1 = cleanXml;
}finally {//关闭流
}
http://www.dtcms.com/a/351371.html

相关文章:

  • WPF TabControl页面绑定ItemsSource
  • F006 vue+flask python 垃圾分类可视化系统+爬虫
  • 力扣(逆波兰表达式求值)
  • 英伟达 Spectrum-XGS:重构 AI 基础设施,开启跨域超级工厂时代
  • Day3--HOT100--42. 接雨水,3. 无重复字符的最长子串,438. 找到字符串中所有字母异位词
  • JHipster 生成器快速入门
  • 爬虫 API:从技术架构到实战落地的全维度解析
  • 功能强大的PDF工具箱-- PDF补丁丁,v1.1.0.4657新版本,免费无广告,开箱即用版~
  • HarmonyOS 中 @Observed 与 @ObjectLink:对象级别的响应式数据管理
  • 鸿蒙中使用极光推送
  • 阿里云docker搭建的mysql无法访问
  • 如何下载MySQL小白指南 (以 Windows 为例)
  • CNN 中 3×3 卷积核等设计背后的底层逻辑
  • 负载均衡之带权重的随机负载均衡算法详解与实现
  • 【LeetCode】动态规划——198.打家劫舍、213.打家劫舍||、337.打家劫舍|||
  • 开发避坑指南(37):Vue3 标签页实现攻略
  • 【Python系列】Flask 和 FastAPI对比
  • 高性价比的云手机该怎样进行选择?
  • GraphRAG——v0.3.5版本
  • 从MySQL到OpenTenBase:电商平台分布式数据库架构升级实战
  • TCP协议11种状态
  • 【人工智能AI、机器学习ML、深度学习DL、基础模型FM、LLM、GPT、Generative AI 分别是什么?他们之间的关系是什么?】
  • 一个头像图片滚动轮播组件(React实现)
  • vscode有的结构体不能补全,有的可以补全问题的解决.
  • 校园资讯平台|校园资讯平台系统|基于java和小程序的校园资讯平台设计与实现(源码+数据库+文档)
  • 《数据之心》——鱼小妖的觉醒(童年篇)
  • 【国密证书】CentOS 7 安装 GmSSL 并生成国密证书
  • SpringBoot启动优化
  • 肌肉力量训练
  • 【C语言练习】汉诺塔