package Sys.ext; import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.StringWriter; import java.util.ArrayList; import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserException; import org.xmlpull.v1.XmlPullParserFactory; import org.xmlpull.v1.XmlSerializer; import android.util.Xml; import Sys.model.UserInfoXML; public class XmlLoad { //创建生成的xml的存储路径 /** * * @return 生成的xml文件 */ public static String CreateXml(UserInfoXML uInfo){ StringWriter stringWriter = new StringWriter(); ArrayList<UserInfoXML> arrList = new ArrayList<UserInfoXML>(); arrList.add(uInfo); try { // 获取XmlSerializer对象 XmlPullParserFactory factory = XmlPullParserFactory.newInstance(); XmlSerializer xmlSerializer = factory.newSerializer(); // 设置输出流对象 xmlSerializer.setOutput(stringWriter); /* * startDocument(String encoding, Boolean standalone)encoding代表编码方式 * standalone 用来表示该文件是否呼叫其它外部的文件。 * 若值是 ”yes” 表示没有呼叫外部规则文件,若值是 ”no” 则表示有呼叫外部规则文件。默认值是 “yes”。 */ xmlSerializer.startDocument("GBK", true); xmlSerializer.startTag(null, "UserInfoXML"); for(UserInfoXML userInfo:arrList){ xmlSerializer.startTag(null, "UserId"); xmlSerializer.text(""); xmlSerializer.endTag(null, "UserId"); xmlSerializer.startTag(null, "LoginName"); xmlSerializer.text(userInfo.getLoginName()); xmlSerializer.endTag(null, "LoginName"); xmlSerializer.startTag(null, "Password"); xmlSerializer.text(userInfo.getLoginPass()); xmlSerializer.endTag(null, "Password"); } xmlSerializer.endTag(null, "UserInfoXML"); xmlSerializer.endDocument(); } catch (Exception e) { e.printStackTrace(); } return stringWriter.toString(); } /** * xmlPullParser解析xml字符串 */ public static String AnalysisXml(String xml){ String returnStr=""; ByteArrayInputStream tInputStringStream = null; try { if (xml != null && !xml.trim().equals("")) { tInputStringStream = new ByteArrayInputStream(xml.getBytes()); } } catch (Exception e) { // TODO: handle exception returnStr= e.getMessage(); } XmlPullParser parser = Xml.newPullParser(); try { parser.setInput(tInputStringStream, "UTF-8"); int eventType = parser.getEventType(); while (eventType != XmlPullParser.END_DOCUMENT) { switch (eventType) { case XmlPullParser.START_DOCUMENT:// 文档开始事件,可以进行数据初始化处理 // persons = new ArrayList<Person>(); break; case XmlPullParser.START_TAG:// 开始元素事件 String name = parser.getName(); if (name.equalsIgnoreCase("InfoStatus")) { returnStr = parser.nextText(); } break; case XmlPullParser.END_TAG:// 结束元素事件 break; } eventType = parser.next(); } tInputStringStream.close(); } catch (XmlPullParserException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e){ // TODO Auto-generated catch block e.printStackTrace(); } return returnStr; } }