struts2的配置文件的stru.xml的dtd定义是如下这样
1.<!DOCTYPE struts PUBLIC "-
2.//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
3."http://struts.apache.org/dtds/struts-2.0.dtd" > 使用dom4j解析含有这样dtd的xml文件时,它会从网络找到这个文件对xml文件进行校验。但是如果电脑断开网络的话就会出现错误说找不到dtd文件并解析失败。
解决的办法一就是解析的时候把上边那句从xml文件中删除或改成本地dtd(struts2的分发包里有这个dtd文件)。删除不太好,之后还得加上。改成本地文件可以,就是麻烦了点,还要是有多个配置文件就更麻烦了。下边就是最简单的解决办法,在dom4j的SAXReader读取xml文件时加上如下一句话
1. public static Document getDoc(String file) throws Exception {
2. SAXReader saxReader = new SAXReader();
3. //加上这句4. saxReader.setEntityResolver(new MyEntityResolver());
5. return saxReader.read(new File(file));
6. }
MyEntityResolver这个是自定义的类
1.import java.io.*;
2.import org.xml.sax.InputSource;
3.import org.xml.sax.EntityResolver;
4.5.public class MyEntityResolver implements EntityResolver {
6.7. public InputSource resolveEntity(String publicId, String systemId) {
8. return new InputSource(new StringBufferInputStream(""));
9. }
10.}
这样就行了,而且由于不用去网络上获取dtd,节省了5~6秒的时间
分享到:
相关推荐
最近用到xml 免不了学一点dtd的定义 而且也免不了解析xml了 我觉得dom4j挺好 就写了这么一个小类 有很多不精简 望大虾们指点。
使用dom4j解析含有这样dtd的xml文件时,它会从网络找到这个文件对xml文件进行校验。但是如果电脑断开网络的话就会出现错误说找不到dtd文件并解析失败。所以请使用以下方法...
org.dom4j.dtd Classes to represent the DTD declarations. org.dom4j.io Provides input and output via SAX and DOM together with writing dom4j objects to streams as XML text. org.dom4j.jaxb org.dom4j....
dom4j帮助文档 官方API All Classes Packages org.dom4j org.dom4j.bean org.dom4j.datatype org.dom4j.dom org.dom4j.dtd org.dom4j.io org.dom4j.jaxb org.dom4j.rule org.dom4j.rule.pattern org.dom...
使用DTD验证XML文档 一、 DTD的定义: a) DTD是Document Type Defintion的缩写,即文档类型定义。DTD用来描述XML文档的结构。 二、 DTD可能包含的内容: a) 元素的定义规则。 b) 元素之间的关系规则。 c) 属性的定义...
DTD规范XML文档编写级XML文档的一般书写格式
这是一个jdom解析xml的小例子、里面还有dtd文件的编写以及dtd文件约束xml文件。这是一个jdom解析xml的小例子、里面还有dtd文件的编写以及dtd文件约束xml文件。这是一个jdom解析xml的小例子、里面还有dtd文件的编写...
解析XML文件(字符串)的两种方法,dom4j解析XML时候忽略DTD文件验证
XML例子 DTD例子 XSL例子 XLD例子 DOM解析
DOM和SAX解析XML文档
学习XML语言的DTD如何去写,如何更好的写出XML语言的DTD文档,对进一步深入学习XML有很大帮助。
XML DTD和XmlSchema标准参考手册!!!!!!!!!!!!!!!!!!!!!!
本资料含有以下内容:xml基础 dtd约束模式 schema约束模式 xslt样式 sax解析 dom解析 jom解析
(帮助文档大全)javaAPI帮助文档、dom4j帮助文档、Schema帮助文档、XPath文档、DTD帮助文档,java开发所需要的文档应有尽有。绝对超值。
xml与DTD,xml与DTD,xml与DTD,xml与DTD
NULL 博文链接:https://17173.iteye.com/blog/617640
第七、八、九章,我们将讨论一些与XML相关的更深层次的内容,包括XML链接、XML DOM以及XML与数据库的连接。最后,在第十章,希望诸多网友和我们一起,仁者见仁,智者见智,共同为XML未来的应用和发展方向作一个前景...
C++ 使用TinyXML解析XML文件,简单清晰,仅供参考。读取和设置xml配置文件是最常用的操作,TinyXML是一个开源的解析XML的C++解析库
关于DTD文件的介绍,主要讲外部DTD,将DTD与XML文档相关联之外部DTD
在JAVA中有两种常见的XML解析方式,DOM和SAX,DOM在解析的时候会将所有的数据一次性载入内存中进行解析,在数据量比较大的情况下,效率非常低.尤其在手机这种对内存和性能要求比较苛刻的设备里面这种方法并不可取. ...