关于dom4j中xpath问题,求大佬详解。。。

school.xml文件

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <students xmlns="http://www.source-z.top"
 3           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 4           xsi:schemaLocation="http://www.source-z.top school.xsd">
 5 
 6     <student id="001">
 7         <name>小明</name>
 8         <age>9</age>
 9         <score>98</score>
10     </student>
11 
12     <student id="002">
13         <name>小红</name>
14         <age>8</age>
15         <score>83</score>
16     </student>
17 
18 </students>

解析文件

 1 package xml.test;
 2 
 3 import org.dom4j.Document;
 4 import org.dom4j.DocumentException;
 5 import org.dom4j.Node;
 6 import org.dom4j.io.SAXReader;
 7 
 8 import java.util.HashMap;
 9 import java.util.Map;
10 
11 public class ParseSchoolXML {
12     public static void main(String[] args) throws DocumentException {
13         //获取解析器
14         SAXReader sax = new SAXReader();
15         //获取整个文档Document
16         Document doc = sax.read("school.xml");
17 
18         //启动XPath对命名空间的支持
19         Map<String, String> map = new HashMap<>();
20         map.put("xs", "http://www.source-z.top");
21         sax.getDocumentFactory().setXPathNamespaceURIs(map);
22 
23         //直接获取指定元素
24         Node node1 = doc.selectSingleNode("//xs:student[@id='002']/xs:name"); 
25         System.out.println(node1.getText());
26         Node node2 = doc.selectSingleNode("//xs:name[2]");
27         System.out.println(node2);  // null 百思不得其姐啊,求大佬解答
28     }
29 }

24行 定位正常 但是26行无法定位,语法错误了么?

猜你喜欢

转载自www.cnblogs.com/hello-mrz/p/10872795.html