使用stax文件出错,分析原因是dtd声明

jericho_lin jericho_lin 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
请大家帮忙看一下,谢谢:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ONIXmessage SYSTEM "http://www.editeur.org/onix/2.1/short/onix-international.dtd">
这是我的声明xml声明部分,当我使用stax去解析该文件时,出现错误:


XMLInputFactory inputFactory = XMLInputFactory.newInstance();
InputStream input = new FileInputStream(new File("test.xml"));
XMLEventReader xmlEventReader = inputFactory.createXMLEventReader(input);
while (xmlEventReader.hasNext())
{
XMLEvent event = xmlEventReader.nextEvent();//加载该事件流的时候就报以下错误
}



2010-01-28 23:01:14 | ERROR | IREAD | [Exception]exception stack info
java.lang.IllegalStateException: Can't overwrite cause
at java.lang.Throwable.initCause(Throwable.java:320)
at com.ctc.wstx.compat.Jdk14Impl.setInitCause(Jdk14Impl.java:70)
at com.ctc.wstx.exc.WstxException.<init>(WstxException.java:46)
at com.ctc.wstx.exc.WstxIOException.<init>(WstxIOException.java:16)
at com.ctc.wstx.sr.StreamScanner.throwFromIOE(StreamScanner.java:683)
at com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1086)
at com.ctc.wstx.evt.WstxEventReader.nextEvent(WstxEventReader.java:196)


我分析了该原因是DTD声明的问题,请问用stax如何处理该dtd声明,谢谢
...全文

相关推荐

DTD(文档类型定义)

在编程和工具应用中,处理DTD的方式多种多样,包括使用XML解析器(如Java的DOM、SAX或StAX解析器)来验证XML文档,或者利用XML编辑器(如Notepad++或XML Spy)直接编辑和检查

weixin_38669628

Java操作XML的实用指南与实践

本文还有配套的精品资源,点击获取 简介:Java操作XML是数据处理中的重要技能,涉及到多种技术和解析器。本课程将介绍关键的Java XML处理库如JAXB、DOM、SAX和StAX,以及如何选择适合特定需求的技术。学生将学习如何将Java类映射到XML,以及如何使用不同解析器遍历、修改XML文档。通过实践示例,课程旨在帮助学生深入理解XML操作,并为处理各种XML任务打下...

郑丢丢

dtd.rar_dtd_java dtd_xml dtd

DTD可以是内部的(包含在XML文档中)或外部的(作为单独的文件引用)。3. **Java**:Java是一种广泛使用的面向对象的编程语言,具有跨平台、高性能的特点。

Jon Sco

JavaWeb开发技术-DTD约束.pptx

DTD约束是XML文档规范的早期形式,它定义了XML文档的结构和元素之间的关系。一个DTD文件包含了关于XML文档合法元素的声明,以及这些元素如何组合的规则。

知识世界

关于面试XML的文档

#### JDOM 中文问题解决方案- 在使用 JDOM 解析 XML 文件时,如果遇到中文字符编码问题,可以通过以下方法解决: - 确保 XML 文件声明了正确的字符集编码,例如 `<xml version

小位
评论 4
收藏 已收藏
分享
返回顶部
jericho_lin
Java 51,407 成员 86,127 内容