dom4j学习笔记

      最近在做Wap网站的项目,期间需要解析并更改xhtml文档,但在使用Node接口的selectNodes(String arg)时,发现当xml文档中包含默认命名空间时,查询回来的List的大小竟然是0.

      经过一番查证,发现原来是Node接口的实现中没有对命名空间的限制和更改,因为实质上Dom4j中Node的selectNodes(String arg)方法使用的依然是XPath的瑟selectNodes(String arg)方法,但在XPath类中就有对命名空间的限制和更改,所以这里不能简单的直接使用Node接口的selectNodes(String arg)方法。

 

下边这个是我自己定义的selectNodes方法:

public List selectNodes(Document doc, String arg) {
    Namespace ns = doc.getRootElement().getNamespace();
    Map map = new HashMap();
    map.put("xhtml", ns.getURI());

    XPath xPath = doc.createXPath("//xhtml:" + arg.substring(2));
    xPath.setNamespaceURIs(map);
    return xPath.selectNodes(doc);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值