使用stax文件出错,分析原因是dtd声明
请大家帮忙看一下,谢谢:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ONIXmessage SYSTEM "http://www.editeur.org/onix/2.1/short/onix-international.dtd">
这是我的声明xml声明部分,当我使用stax去解析该文件时,出现错误:
我分析了该原因是DTD声明的问题,请问用stax如何处理该dtd声明,谢谢
<?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)直接编辑和检查
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是一种广泛使用的面向对象的编程语言,具有跨平台、高性能的特点。
JavaWeb开发技术-DTD约束.pptx
DTD约束是XML文档规范的早期形式,它定义了XML文档的结构和元素之间的关系。一个DTD文件包含了关于XML文档合法元素的声明,以及这些元素如何组合的规则。
关于面试XML的文档
#### JDOM 中文问题解决方案- 在使用 JDOM 解析 XML 文件时,如果遇到中文字符编码问题,可以通过以下方法解决: - 确保 XML 文件声明了正确的字符集编码,例如 `<xml version


