paip dom4j中 selectSingleNode 或selectNodes获取不到节点的原因总结

               

paip.dom4j中 selectSingleNode 或selectNodes获取不到节点的原因总结


----作者Attilax , 1466519819@qq.com---

可能是因为XML文件带有命名空间.比如
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaeehttp://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
 

因为dom4j不能识别带命名空间的节点,所以在读取带命名空间的XML时,要在每个节点前加上命名空间,方法如下例子:


  Document doct=reader.read(xmlFile);
                                        HashMap nsMap=new HashMap();
                                        nsMap.put("ns","http://java.sun.com/xml/ns/jbi");          //加入命名空间
                                        //获取子节点
                                        XPath xsub=doct.createXPath("//ns:title");
                                        xsub.setNamespaceURIs(nsMap);
                                        Element element = (Element) xsub.selectSingleNode(doct);

 


参考
dom4j含xmlns(命名空间)调用selectNodes为空问题 - mochouxiyan的专栏 - 博客频道 - CSDN_NET.htm
上面就是运用dom4j解析带命名空间的xml文件的节点的例子,只要给XPath设置默认的命名空间就行了

 

           

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值