Dom4j 存在命名空间导致document.selectNodes() 无返回结果
2017-12-07 17:08
896 查看
xml文件中存在命名空间导致 document.selectNodes("//linuxidc/book") 无返回结果
如:
<linuxidc xmlns="http://www.linuxidc.com">
<book>
<title></title>
<des></des>
...
</book>
</linuxidc>
推荐阅读:
dom4j+xpath读取xml文件配置Oracle数据库连接
http://www.linuxidc.com/Linux/2013-04/83405.htm
Struts2+jQuery+Dom4j实现服务器返回Xml文档 http://www.linuxidc.com/Linux/2012-07/65680.htm
Java使用dom4j解析XML字符串 http://www.linuxidc.com/Linux/2013-07/87734.htm
解决方法:
// 获得xml对象
Document doc = DocumentHelper.parseText(xml);
Map map = new HashMap();
// 获得命名空间
String nsURI = doc.getRootElement().getNamespaceURI();
map.put("xmlns", nsURI);
// 创建解析路径,就是在普通的解析路径前加上map里的key值
XPath x = doc.createXPath("//xmlns:linuxidc/xmlns:book");
x.setNamespaceURIs(map);
// 这样就拿到结果了
List<Node> nodes = x.selectNodes(doc);
Node node = x.selectSingleNode(doc);
本文永久更新链接地址:http://www.linuxidc.com/Linux/2014-04/100589.htm
如:
<linuxidc xmlns="http://www.linuxidc.com">
<book>
<title></title>
<des></des>
...
</book>
</linuxidc>
推荐阅读:
dom4j+xpath读取xml文件配置Oracle数据库连接
http://www.linuxidc.com/Linux/2013-04/83405.htm
Struts2+jQuery+Dom4j实现服务器返回Xml文档 http://www.linuxidc.com/Linux/2012-07/65680.htm
Java使用dom4j解析XML字符串 http://www.linuxidc.com/Linux/2013-07/87734.htm
解决方法:
// 获得xml对象
Document doc = DocumentHelper.parseText(xml);
Map map = new HashMap();
// 获得命名空间
String nsURI = doc.getRootElement().getNamespaceURI();
map.put("xmlns", nsURI);
// 创建解析路径,就是在普通的解析路径前加上map里的key值
XPath x = doc.createXPath("//xmlns:linuxidc/xmlns:book");
x.setNamespaceURIs(map);
// 这样就拿到结果了
List<Node> nodes = x.selectNodes(doc);
Node node = x.selectSingleNode(doc);
本文永久更新链接地址:http://www.linuxidc.com/Linux/2014-04/100589.htm
相关文章推荐
- Dom4j 存在命名空间导致document.selectNodes() 无返回结果
- dom4j 存在命名空间导致document.selectNodes() 无返回结果
- dom4j document/element selectNodes方法 返回空
- 当xml中存在命名空间,dom4j解析以及写入xml文档时的乱码问题
- 当xml中存在命名空间,三种处理办法(dom4j)
- 当xml中存在命名空间,三种处理办法(dom4j)
- 当 xml中存在命名空间,三种处理办法(dom4j)
- 当xml中存在命名空间,三种处理办法(dom4j)
- dom4j解析带命名空间的xml文件
- class not found (php)明明命名空间和类目都存在却总是提示找不到的奇葩现象原因以及解决方案
- xml内容解析,包含命名空间时需特殊处理(dom4j)
- (在命名空间 public 中)存在冲突
- dom4j结合xpath获取多命名空间xml中指定id、指定属性节点
- sqlserver 存储过程 返回多个select 结果集
- 在HQL select查询语句中自定义查询结果返回的数据类型
- 8、关于增强版的GenericityJDBCUtils的实现,可灵活的处理select的返回结果
- C#操作xml SelectNodes,SelectSingleNode总是返回NULL 与 xPath 介绍
- 带命名空间的XML的dom4j应用<转>
- DOM4J XPath读取具有命名空间的XML文档元素
- Android无法导入下载好的项目(和Eclipse中已经存在的项目命名一样导致冲突)解决的方法