Dom4j 存在命名空间导致document.selectNodes() 无返回结果


xml文件中存在命名空间导致 document.selectNodes("//bkjia/book") 无返回结果
 如:
 <bkjia xmlns="

Struts2+jQuery+Dom4j实现服务器返回Xml文档

Java使用dom4j解析XML字符串

解决方法:

  // 获得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:bkjia/xmlns:book");
  x.setNamespaceURIs(map);
  // 这样就拿到结果了
  List<Node> nodes = x.selectNodes(doc);
  Node node = x.selectSingleNode(doc);

本文永久更新链接地址:

相关内容

    暂无相关文章