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

               

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


----作者Attilax , [email protected]---

可能是因为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

猜你喜欢

转载自blog.csdn.net/jffyuhgv/article/details/87517854