jaxen版本问题造成xpath工作不正常

本文介绍在跨平台数据交换中使用XML及其XPath的优势,并分享了一个关于在DOM4J中处理XPath查询的实际案例,包括遇到的问题及解决过程。

由于工作中经常涉及跨平台的数据交换,XML是不二选择。 

虽然SOAP能让各种异构平台都使用自由对象,但是很难避免要手动处理通过纯文本传递过来的xml数据。XPath能让工作简单很多,这样一条xpath查询:

/*[local-name()='Root']/*[local-name()='Person']/*[local-name()='Name']

显然要比手动处理SAX流程或者dom tree要简单很多,况且现在jdom和dom4j都已经大量普及,他们对xpath的支持都还做的不错。

今天写了一段代码,利用一个xpath查询,在dom4j中处理一个极为简单的xml,本来打算几分钟脱手的,结果程序一直执行不正常,xpath始终无法找到节点,无论怎么查,都只能返回null或是size=0的List,程序也不报告任何异常,其不厚道者甚矣。一再确认xpath表达式、标签名、明明空间,却总是不得要领,郁闷,太过丢人。

无奈之下,只能怀疑部署环境有问题。程序是部署在Jboss 4.0.2下的一个很简单的war,打开jboss/lib,发现下面由一个dom4j,估计版本有点低,替换成dom4j 1.6.1,问题依旧,再郁闷。喝两口茶,突然想起dom4j的xpath api是依赖jaxen完成的,其功能本身和dom4j.jar没有什么关系,于是把jboss/lib下的jaxen.jar替换成dom4j 1.6.1的lib下的版本,try again,运行正常。

第一次使用搜狗输入法,发现很容易产生错别字。

 
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值