原文转自http://blog.csdn.net/memray/article/details/7525122
没想到搞个dom4j会出这么多怪错。。
最近在研究XBRL GL的有关内容,在项目中要求吧XBRL GL导入到11179注册库中,根据11179建立数据库,然后从XBRL GL分类标准中导入数据到数据库。在导入过程中需要用到dom4j来读取XBRL GL文件,用selectnodes来选取制定的元素,发现总是空值,查看XPATH也没有错,着实困扰了很长时间。后来发现,原来是xmlns在作怪,把xml文件开头的xmlns属性去掉,一切OK!
另外,如果要选取当前节点的子节点,要用"./节点的相对路径"才能完成此任务。
自己的补充如下:
最近碰到一个与解析XML有关的BUG。dom4j中selectNodes无法获得节点。
现场的项目是跑在WebSphere上。我拿到项目源码后把它部署在Tomcat上。
dom4j工作的时候还需要依赖jaxen-1.1-beta-7.jar。我拿到的项目包里没有这个jar包。Tomcat的lib下有这个包。解析一直不成功。控制台也找不到报错日志(像什么少包的日志提示)。后来同事告诉我把jaxen-1.1-beta-7.jar放到项目的WebContent\WEB-INF\lib里边,BUG才解决。
这是一个缺包造成的BUG。如果我能早些问人家的话,就不要折腾那么久了!!!
我这里BUG产生的原因是因为少包。