在XML根节点出现<outputdatas xmlns="XML">
或<root xmlns="www.xxx.com"> xmlns等于的就是命名空间了
或<root xmlns="www.xxx.com"> xmlns等于的就是命名空间了
因为dom4j不能识别带命名空间的节点,所以在读取带命名空间的XML时,要在每个节点前加上命名空间,方法如下例子:
Map nsMap = null;
@SuppressWarnings("unchecked")
public void readXml(String xml) throws DocumentException{
Document doc = DocumentHelper.parseText(xml);
nsMap = new HashMap();
String defaultNamespace = doc.getRootElement().getNamespaceURI();
nsMap.put("default", defaultNamespace);
XPath x = doc.createXPath("//default:outputdatas/default:results/"
+ "default:result[@set_id='201']"
+ "/default:row/default:col[@param_id='201001']");
x.setNamespaceURIs(nsMap);
List<Node> nodes = x.selectNodes(doc);
Node node = x.selectSingleNode(doc);}