<?xml version="1.0" encoding="UTF-8" ?>
<soundfile>
<file>
<filename>该卡不存在.wav</filename>
</file>
<file>
<filename>该卡可入园人数不足.wav</filename>
</file>
<file>
<filename>人脸对比不通过.wav</filename>
</file>
</soundfile>
方式一:
private void ReadSDCardXmlFile() {
File file = new File(Environment.getExternalStorageDirectory().getPath() + "/sound/setting.xml");
if (!file.exists() || file.isDirectory()) {
return;
}
try {
File f = new File(Environment.getExternalStorageDirectory().getPath() + "/sound/setting.xml");
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.parse(f);
NodeList nl = doc.getElementsByTagName("file");
for (int i = 0; i < nl.getLength(); i++) {
Log.d(TAG, doc.getElementsByTagName("filename").item(i).getFirstChild().getNodeValue());
}
} catch (Exception e) {
e.printStackTrace();
}
}
方式二:
public void parseXmlInfo(InputStream is, int tag) {
//1.先拿到pull解析器
XmlPullParser xParser = Xml.newPullParser();
try {
xParser.setInput(is, "utf-8");
//获取事件的类型
int eventType = xParser.getEventType();
SettingBean updataInfo = null;
while (eventType != XmlPullParser.END_DOCUMENT) {
switch (eventType) {
case XmlPullParser.START_TAG:
//当事件的开始类型newslist,代表的是xml文件的数据开始
if ("soundfile".equals(xParser.getName())) { //
//这时候我们就new出来一个list,用于保存数据
infoList = new ArrayList<>();
}//当事件类型是news,说明是一条新闻
else if ("file".equals(xParser.getName())) {//
//new出一个news的对象
updataInfo = new SettingBean();
} else if ("filename".equals(xParser.getName())) { //
String FileName = xParser.nextText();
updataInfo.setFileName(FileName);
}
break;
case XmlPullParser.END_TAG:
//当结束时间是news时,说明一条news已经解析完成,并且加入到集合中
if ("file".equals(xParser.getName())) {
infoList.add(updataInfo);
Log.d("集合长度", "集合长度" + infoList.size());
}
break;
}
eventType = xParser.next();
}
DownLoadFile(infoList, tag);
} catch (Exception e) {
e.printStackTrace();
}
}
xml解析
最新推荐文章于 2024-07-18 14:43:20 发布