使用dom4j中SAXReader解析xml數據


 

 1  public ApiConfig(String configFilePath) throws DocumentException{
 2         SAXReader reader = new SAXReader();
 3         File xml=new File(configFilePath);
 4         Document document = reader.read(xml);
 5         //獲取根元素
 6         Element rootElement = document.getRootElement();
 7         
 8         //將根元素下"rootUrl"元素的值去除空格后,賦值給一個String
 9         rootUrl = rootElement.element("rootUrl").getTextTrim();
10         //注解:取消警告,將根元素下獲取到的所有"params"的子元素賦值到List中
11         @SuppressWarnings("unchecked") 
12         List<Element> paramElements = rootElement.element("params").elements(
13                 "param");
14         //對List進行循環,將獲取到的值put到HashMap中
15         paramElements.forEach((ele)->{
16             params.put(ele.attributeValue("name").trim(),
17                     ele.attributeValue("value").trim());
18         });
19         @SuppressWarnings("unchecked")
20         List<Element> headerElements = rootElement.element("headers").elements(
21                 "header");
22         headerElements.forEach((ele)->{
23             headers.put(ele.attributeValue("name").trim(),
24                     ele.attributeValue("value").trim());
25         });
26         Element projectEle = rootElement.element("project_name");
27         if(projectEle!=null){
28             ReportUtil.setReportName(projectEle.getTextTrim());
29         }
30     }        
31 
32   private Map<String,String> params = new HashMap<String, String>();
33     
34     private Map<String,String> headers = new HashMap<String, String>();

代碼解析:
1、讀取xml數據
SAXReader可以通過多種方式讀取xml數據,並返回Document格式的對象。通過查看源碼,可以看出read()方法接收File,InputStream和URL等格式的參數來讀取相應的xml數據。讀取xml文檔和xml格式的字符串兩種方式。當然,字符串要根據相應的編碼轉成輸入流才能被SAXReader讀取。
2、解析xml數據
讀取到Document對象后,我們使用getRootElement()方法獲取根元素,返回的是一個Element對象。
3、獲取子元素數據
獲取根元素后,便可以一層一層的去獲取他的子元素信息。如果知道子元素的標簽名稱,便可以直接調用element("name")方法獲取該子元素。如果不知道子元素的名稱,或者想直接獲取該元素下的全部子元素,可以調用elements()方法獲取一個包括全部元素的list,然后進行下一步的處理。
4、輸出元素信息
調用getName()方法獲取當前元素的元素名,attributeValue()獲取屬性名。如果當前元素沒有子元素,則調用getText()方法獲取元素值。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM