SAXReader从输入流中读取XML文件

来源:互联网 发布:我的世界 java版本 编辑:程序博客网 时间:2024/06/13 19:42

  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);  
                 }  
             }  
         };  
     }  
 });

0 0
原创粉丝点击