这样的文件
<Elements>
<title>标题</title>
</Elements>
选择title节点为 document.selectNodes("/Elements/title" ); 但是如果根节点有参数<Elements xmlns="http://www.163.com" xmlns:dc="http://www.163.com">
<title>标题</title>
</Elements>
那么要选择title节点应该如何写?
<Elements>
<title>标题</title>
</Elements>
选择title节点为 document.selectNodes("/Elements/title" ); 但是如果根节点有参数<Elements xmlns="http://www.163.com" xmlns:dc="http://www.163.com">
<title>标题</title>
</Elements>
那么要选择title节点应该如何写?
有属性和没属性用xpath询址是一样的~`
在代码中要注明使用的命名空间就能找得到title了
SAXReader reader = new SAXReader();
Document doc = reader.read(new java.io.FileInputStream(tempfilename));
//Query ProcessId's value with Xpath
XPath xpath = doc.createXPath("//Package:WorkflowProcesses/Package:WorkflowProcess/@Id");
xpath.setNamespaceURIs(java.util.Collections.singletonMap("Package", "http://www.wfmc.org/2002/XPDL1.0"));
//Node node = xpath.selectSingleNode(doc);
List processes = xpath.selectNodes(doc);
XML举例:<Elements xmlns="http://www.163.com" xmlns:dc="http://www.163.com">
<test>
<title> 标题 </title>
</test>
</Elements>
程序片段:SAXReader saxReader = new SAXReader();
Document document = saxReader.read(new File(filename)); HashMap xmlMap = new HashMap();
xmlMap.put("plugins","http://www.163.com"); //假设的命名空间
XPath x = document.createXPath("//plugins:test/plugins:title"); //读取二级节点,研究了半天
x.setNamespaceURIs(xmlMap);
Element valueElement = (Element)x.selectSingleNode(document);
System.out.println(valueElement.getText()); //输出该节点内容