Android中怎么解析XML文件和生成XML文件,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
解析XML文件
public static void initXML(Context context) {
//can't create in /data/media/0 because permission
//can create in /sdcard/hotel
File mSettings = new File(HOTEL_PATH_XML);
if (!mSettings.exists()) {
mSettings.mkdirs();
}
File settings = new File(mSettings,"settings.xml");
Log.i("XmlPullParser-----settings", settings+"+1+");
if (!settings.exists()) {
try {
Log.i("XmlPullParser-----settings", settings+"+2+");
settings.createNewFile();
initSettings(settings);
} catch (IOException e) {
e.printStackTrace();
return;
}
return;
}
try {
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
factory.setNamespaceAware(true);
XmlPullParser xpp = factory.newPullParser();
xpp.setInput(new FileInputStream(settings), "utf-8");
int eventType = xpp.getEventType();
while (eventType != XmlPullParser.END_DOCUMENT) {
Log.i("XmlPullParser-----TAG", eventType+"");
if (eventType == XmlPullParser.START_TAG) {
String tag = xpp.getName();
Log.i("XmlPullParser-----TAG", "tag---------"+tag+"");
if (tag.equals("item")) {
String id = xpp.getAttributeValue(null, "id");
String value = xpp.getAttributeValue(null, "value");
if (id.equals("server")) {
sServerAddr = value;
} else if (id.equals("hotel")) {
sHid = value;
} else if (id.equals("room")) {
sRoomNum = value;
}
}
}
eventType = xpp.next();
}
Log.i("XmlPullParser-----TAG", eventType+"exist the xunhuan");
} catch (XmlPullParserException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
生成XML文件
//默认是没有换行的<br>public static void initSettings(final File settings) {
new Thread(new Runnable() {
@Override
public void run() {
FileOutputStream fos = null;
try {
fos = new FileOutputStream(settings);
XmlSerializer serializer = Xml.newSerializer();
serializer.setOutput(fos, "UTF-8");
serializer.startDocument("UTF-8", true);
serializer.startTag(null, "config");
serializer.startTag(null, "category");
serializer.attribute(null, "name", "hot");
// server
serializer.startTag(null, "item");
serializer.attribute(null, "id", "server");
serializer.attribute(null, "value", "");
serializer.endTag(null, "item");
// hid
serializer.startTag(null, "item");
serializer.attribute(null, "id", "hotel");
serializer.attribute(null, "value", "");
serializer.endTag(null, "item");
// room
serializer.startTag(null, "item");
serializer.attribute(null, "id", "room");
serializer.attribute(null, "value", "");
serializer.endTag(null, "item");
serializer.endTag(null, "category");
serializer.endTag(null, "config");
serializer.endDocument();
serializer.flush();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (fos != null) {
try {
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}).start();
}
关于Android中怎么解析XML文件和生成XML文件问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。