解决办法可以参见这位老兄的博客:
http://tailsherry.iteye.com/blog/98111
对第二种方法补充两个小分支:
1.直接写一内部类,代码如下
class NoOpEntityResolver implements EntityResolver {
public InputSource resolveEntity(String publicId, String systemId) {
return new InputSource(new StringBufferInputStream(""));
}
}
使用时,加上代码:
xmlReader.setEntityResolver(new NoOpEntityResolver());
这样也能通过。
2.可参考hibernate的处理方式来实现EntityResolver。见org.hibernate.util.DTDEntityResolver。这里贴上它的resolveEntity()方法。
public InputSource resolveEntity(String publicId, String systemId) {
if ( systemId != null ) {
log.debug( "trying to resolve system-id [" + systemId + "]" );
if ( systemId.startsWith( HIBERNATE_NAMESPACE ) ) {
log.debug( "recognized hibernate namespace; attempting to resolve on classpath under org/hibernate/" );
String path = "org/hibernate/" + systemId.substring( HIBERNATE_NAMESPACE.length() );
InputStream dtdStream = resolveInHibernateNamespace( path );
if ( dtdStream == null ) {
log.debug( "unable to locate [" + systemId + "] on classpath" );
if ( systemId.substring( HIBERNATE_NAMESPACE.length() ).indexOf( "2.0" ) > -1 ) {
log.error( "Don't use old DTDs, read the Hibernate 3.x Migration Guide!" );
}
}
else {
log.debug( "located [" + systemId + "] in classpath" );
InputSource source = new InputSource( dtdStream );
source.setPublicId( publicId );
source.setSystemId( systemId );
return source;
}
}
else if ( systemId.startsWith( USER_NAMESPACE ) ) {
log.debug( "recognized local namespace; attempting to resolve on classpath" );
String path = systemId.substring( USER_NAMESPACE.length() );
InputStream stream = resolveInLocalNamespace( path );
if ( stream == null ) {
log.debug( "unable to locate [" + systemId + "] on classpath" );
}
else {
log.debug( "located [" + systemId + "] in classpath" );
InputSource source = new InputSource( stream );
source.setPublicId( publicId );
source.setSystemId( systemId );
return source;
}
}
}
// use default behavior
return null;
}
分享到:
相关推荐
"Json和Xml离线格式化工具"是针对这两种格式的解析和美化工具,可以在没有网络连接的情况下对JSON和XML数据进行格式化,使得数据更易于阅读和理解。 JSON格式化工具通常包含以下功能: 1. **代码高亮**:为键值对和...
另外,离线解析还可能包含一些高级功能,比如数据筛选、格式化、导出为其他格式(如CSV、XML),或者与数据库集成进行数据导入导出。 总结来说,“json离线解析”这个主题涵盖了以下几个知识点: 1. JSON的基本概念...
有些情况下,在开发web项目中会遇到weblogic无法解析xml的错误,是因为weblogic在解析xml时是调用自己的方法去解析,会产生一些莫名其妙的错误,我们只要在web-inf下添加weblogic.xml让其让出解析权即可.
java在线解析xmljava在线解析xmljava在线解析xmljava在线解析xmljava在线解析xmljava在线解析xmljava在线解析xmljava在线解析xmljava在线解析xmljava在线解析xmljava在线解析xmljava在线解析xmljava在线解析xmljava...
6. **错误处理**:解析过程中可能出现错误,比如XML格式不正确。需要使用`Error`属性检查错误状态,并通过`ErrorMessage`获取错误信息。 7. **XML DOM操作**:如果使用XMLDOMDocument,还可以进行更复杂的DOM操作,...
总的来说,STM32F107结合minixml库提供了一个高效且节省资源的解决方案,使得嵌入式系统能够在有限的资源下处理XML数据。通过学习和实践这个示例,开发者可以掌握在STM32平台上进行XML解析的基本技巧,为未来的项目...
4. **SAX解析**:与DOM不同,SAX解析器不将整个XML文档加载到内存,而是通过事件回调函数处理每个元素的开始和结束、处理属性等。在易语言中,我们需要定义一系列的事件处理函数,如`开始文档`、`结束文档`、`开始...
JAVA 解析XML和生成XML文档源码。比较全 1.DOM生成和解析XML文档 2.SAX生成和解析XML文档 3.DOM4J生成和解析XML文档 4.JDOM生成和解析XML
总结来说,"STM32解析XML完整工程.zip"提供了一个在STM32微控制器上解析XML文件的完整解决方案,包括必要的软件资源和示例代码。通过学习和理解这些文档及代码,开发者可以掌握在嵌入式环境中处理XML数据的技术,为...
2. **XML解析**:XML文档由元素、属性、文本等构成,解析XML时,我们需要读取这些元素并将其转换为内存中的数据结构。Python中可以使用`xml.etree.ElementTree`库进行解析,Java中可使用DOM或SAX解析器。 3. **XML...
标题中的“PB解析XML字符串 把XML 变为数据窗口”指的是使用PowerBuilder(PB)这一编程工具,处理XML格式的数据,并将其转换成数据窗口对象的过程。数据窗口是PowerBuilder中的一个核心组件,用于显示、编辑和管理...
与上一个版本一起使用可以可以起到提高效率的目的。本人解析xml的真实文档
本文将深入探讨“在线解析XML”与“本地解析XML”的概念及其应用场景,以及如何将XML数据从CLOB字段提取并存入数据库。 1. XML的基本概念: XML是一种自描述的、结构化的文本格式,它通过标签来定义数据结构和内容...
在Android应用中,我们通常使用两种方式来解析XML:DOM(Document Object Model)解析器和SAX(Simple API for XML)解析器。 1. DOM解析: DOM解析器将整个XML文件加载到内存中,形成一个树形结构,可以方便地遍历...
Java作为一种广泛使用的后端编程语言,提供了多种方式来解析XML文档,使得处理多级嵌套的数据变得可能。本文将详细讲解如何在Java中解析XML,特别是针对多级结构的情况。 首先,Java提供了两种主要的API来处理XML:...
而SAX解析器则是事件驱动的,逐个处理XML元素,适合处理大型XML文件,因为它不需要一次性加载整个文档。 在"Parse XML"这个子VIs中,你可能看到包含以下功能的模块: 1. XML文件选择器:用户可以通过这个界面组件...
读取和设置xml配置文件是最常用的操作,试用了几个C++的XML解析器,个人感觉TinyXML是使用起来最舒服的,因为它的API接口和Java的十分类似,面向对象性很好。 TinyXML是一个开源的解析XML的解析库,能够用于C++,...
2. **命名规则**:XML元素和属性名必须遵循一定的命名规则,不能以数字开头,不能包含特殊字符。 3. **编码识别**:XML文档可以指定编码,解析器需识别并处理不同的字符编码。 4. **错误处理**:当遇到无效的XML数据...
kettle 解析xml多层次流式解析,描述了复杂情况下流式解析需要注意的点。
JavaScript中的XML解析器是用于处理XML数据的关键工具,它允许开发者在浏览器环境中解析XML文档或者XML字符串,从而在Web应用中有效地使用这些数据。XML(eXtensible Markup Language)是一种结构化数据语言,常用于...