首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

dom4j 常见错误

2012-08-21 
dom4j 常见异常1:org.dom4j.IllegalAddException:?No?such?namespace?prefix:?这个异常是说:要添加的这个

dom4j 常见异常

1org.dom4j.IllegalAddException:?No?such?namespace?prefix:?

这个异常是说:要添加的这个元素的前缀,没有声明!这主要是在添加元素时直接用上级元素的allElement方法时出现的。例:

Element ns1 = rootTarget.addElement("SOAP-ENV:Body");???????????????????????????????????????????

?

有两种解决方式:

A:新建一个Element,加上前缀声名后再添加到父元素上去。

Element ns1 = org.log4j.documentHelper.createElement("ns1:aaa");

???????ns1.add(new Namespace("ns1","urn:HyrjService");

???????rootTarget.add(ns1);?????

B:直接在根上声名:然后就可以用addElement方法去添加结点了!

rootTarget.add(new Namespace("ns1","http://www.w3.org/2001/XMLSchema"));

?

2:Nested ? exception: ??缺少文件根组件。

这是因为xml解析器的问题,以前一直在web环境下跑程序,用的是xerces解析器,就不会报上面的错误。
但是独立运行的程序如果用jdk1.4.2和dom4j1.6.1时就回有上面的错误,因为用的是jdk自带的解析器crimson。

解决办法就是:
a:用xerces解析器,可以从tomcat中找到xercesImpl.jar和xml-api.jar放到工程中就可以了。
b:换jdk1.5,jdk1.5下面也没有这个问题,应该是jdk1.5自带的解析器解决了这个问题了。

热点排行