java之XML

 1 //转为XML格式
 2     public static String ArrayToXml(Map<String, String> arr) {
 3         String xml = "<xml>";
 4         Iterator<Entry<String, String>> iter = arr.entrySet().iterator();
 5         while (iter.hasNext()) {
 6             Entry<String, String> entry = iter.next();
 7             String key = entry.getKey();
 8             String val = entry.getValue();
 9             if (IsNumeric(val)) {
10                 xml += "<" + key + ">" + val + "</" + key + ">";
11             } else
12                 xml += "<" + key + "><![CDATA[" + val + "]]></" + key + ">";
13         }
14         xml += "</xml>";
15         return xml;
16     }
17 
18     public static boolean IsNumeric(String str) {
19         if (str.matches("\\d *")) {
20             return true;
21         } else {
22             return false;
23         }
24     }
 1 //解析XML
 2         private Map<String, String> doXMLParse(String xml)  
 3                 throws XmlPullParserException, IOException {  
 4 
 5             InputStream inputStream = new ByteArrayInputStream(xml.getBytes());  
 6 
 7             Map<String, String> map = null;  
 8 
 9             XmlPullParser pullParser = XmlPullParserFactory.newInstance()  
10                     .newPullParser();  
11 
12             pullParser.setInput(inputStream, "UTF-8");// 为xml设置要解析的xml数据  
13 
14             int eventType = pullParser.getEventType();  
15 
16             while (eventType != XmlPullParser.END_DOCUMENT) {  
17                 switch (eventType) {  
18                 case XmlPullParser.START_DOCUMENT:  
19                     map = new HashMap<String, String>();  
20                     break;  
21 
22                 case XmlPullParser.START_TAG:  
23                     String key = pullParser.getName();  
24                     if (key.equals("xml"))  
25                         break;  
26                     String value = pullParser.nextText();  
27                     map.put(key, value);  
28                     break;  
29                 case XmlPullParser.END_TAG:  
30                     break; 
31                 }  
32                 eventType = pullParser.next();  
33             } 
34             return map;  
35         }  

 

posted @ 2017-11-21 11:10  26个字符的地狱  阅读(367)  评论(0编辑  收藏  举报