pull解析xml檔案代碼如下:
public void PullParseXML(String filepath) {
String res = "本結果是通過XmlPullParse解析:" + "/n";
try {
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
XmlPullParser xmlPullParser = factory.newPullParser();
File file = new File(filepath);
if(!file.exists()){
CreateXML();
file = new File(filepath);
}
FileInputStream input=null;
try {
input = new FileInputStream(file);
} catch (FileNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
if(input == null)
return;
xmlPullParser.setInput(input,"UTF-8");
int eventType = xmlPullParser.getEventType();
String str="";
try {
while (eventType != XmlPullParser.END_DOCUMENT) {
String nodeName = xmlPullParser.getName();
switch (eventType) {
case XmlPullParser.START_TAG:
if ("XX1".equals(nodeName)) {
str = xmlPullParser.nextText();
res += "XX1 = "+str+"--";
} else if ("XX2".equals(nodeName)) {
str = xmlPullParser.nextText();
res += "XX2 = "+str+"--";
}else if ("XX3".equals(nodeName)) {
str = xmlPullParser.nextText();
res += "XX3 = "+str+"--";
}else if ("XX4".equals(nodeName)) {
str=xmlPullParser.nextText();
res += "XX4 = "+str+"--";
}else if ("XX5".equals(nodeName)) {
str = xmlPullParser.nextText();
res += "XX5 = "+str+"--";
}
break;
default:
break;
}
eventType = xmlPullParser.next();
}
} catch (IOException e) {
e.printStackTrace();
return;
}
} catch (XmlPullParserException e) {
e.printStackTrace();
return;
}
Log.e("PullParseXML:",res);
}
2.寫xml檔案如下:
public void WriteXml(String filepath) throws IllegalArgumentException, IllegalStateException, IOException {
File file = new File(filepath);
if(!file.exists()){
CreateXML();
file = new File(filepath);
}
FileOutputStream out = null;
try {
out = new FileOutputStream(file);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if(out == null)
return;
XmlSerializer serializer = Xml.newSerializer();
serializer.setOutput(out, "UTF-8");
serializer.startDocument("UTF-8", true);
serializer.startTag("", "SettingInfo");
String str = "0";//在此先随便寫個資料
serializer.startTag("", "XX1");
serializer.text(str);
serializer.endTag("", "XX1");
serializer.startTag("", "XX2");
serializer.text(str);
serializer.endTag("", "XX2");
str = "0";
serializer.startTag("", "XX3");
serializer.text(str);
serializer.endTag("", "XX3");
serializer.startTag("", "XX4");
serializer.text(str);
serializer.endTag("", "XX4");
serializer.startTag("", "XX5");
serializer.text(str);
serializer.endTag("", "XX5");
serializer.endTag("", "SettingInfo");
serializer.endDocument();
out.flush();
out.close();
}
---應該有擷取xml的tag直接進行資料修改,會的童鞋還請在告知下,謝謝!