Dom4j 存在命名空间导致document.selectNodes() 无返回结果
2016-04-08 00:00
666 查看
摘要: dom4j,selectNodes,xpath
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);
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);
相关文章推荐
- XML 与 JSON 优劣对比
- As3.0 xml + Loader应用代码
- 网马生成器 MS Internet Explorer XML Parsing Buffer Overflow Exploit (vista) 0day
- ext读取两种结构的xml的代码
- C#针对xml基本操作及保存配置文件应用实例
- Ruby程序中创建和解析XML文件的方法
- asp下查询xml的实现代码
- sqlserver FOR XML PATH 语句的应用
- 使用sp_xml_preparedocument处理XML文档的方法
- EBS xml publisher中文乱码问题及解决办法
- C#中的Linq to Xml详解
- C#操作XML文件实例汇总
- SQL Server中的XML数据进行insert、update、delete
- C#实现将文件转换为XML的方法
- SQL Server中的XML数据进行insert、update、delete操作实现代码
- 关于SQLServer2005的学习笔记 XML的处理
- C#通过DataSet读写xml文件的方法
- C#实现基于XML配置MenuStrip菜单的方法
- spring boot分环境导出自定义xml配置