SAXReader從輸入流中讀取XML文件

  Map<String, String> map = new HashMap<String, String>();       
  // 從request中取得輸入流       
  InputStream inputStream = request.getInputStream(); 
  // 讀取輸入流     
  SAXReader reader = new SAXReader();    
  //生成document實體
  Document document = reader.read(inputStream);     
  // 得到xml根元素       
  Element root = document.getRootElement();      
  // 得到根元素的所有子節點
  List<Element> elementList = root.elements();
  // 遍歷所有子節點
  for (Element e : elementList){
   map.put(e.getName(), e.getText());
   System.out.println(e.getName()+":"+e.getText());
  } 
  // 釋放資源       
  inputStream.close();
  inputStream = null;
  return map;

 

這是從輸入流中讀取XML文件

 

 /** 
  * 擴展xstream,使其支持CDATA塊 
  *  
  * @date 2013-05-19 
  */

private static XStream xstream = new XStream(new XppDriver() {  
     public HierarchicalStreamWriter createWriter(Writer out) {  
         return new PrettyPrintWriter(out) {  
             // 對所有xml節點的轉換都增加CDATA標記  
             boolean cdata = true;  
        
             @SuppressWarnings("unchecked")  
             public void startNode(String name, Class clazz) {  
                 super.startNode(name, clazz);  
             }  
        
             protected void writeText(QuickWriter writer, String text) {  
                 if (cdata) {  
                     writer.write("<![CDATA[");  
                     writer.write(text);  
                     writer.write("]]>");  
                 } else {  
                     writer.write(text);  
                 }  
             }  
         };  
     }  
 });

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章