您的位置:首页 > Web前端 > Node.js

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

2012-10-21 23:08 591 查看
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/javaee
http://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设置默认的命名空间就行了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: