android 解析xml
16lz
2021-01-23
android下使用DocumentBuilder 解析xml时,有不少坑,主要是遍历子节点时要注意。
假设有如下xml文件
<GuessStock><Release><VersionCode>2</VersionCode><VersionName>0.2</VersionName><Description>New version for test</Description><Url>http://guessstock.qiniudn.com/GuessStock.apk</Url><CheckSum/><Date>2014-09-21 17:33:00</Date></Release></GuessStock>
解析代码如下:
InputStream stream = new DefaultHttpClient() .execute(new HttpGet(url)).getEntity().getContent(); DocumentBuilder myDocBuilder = DocumentBuilderFactory.newInstance() .newDocumentBuilder(); Document myDoc = myDocBuilder.parse(new InputSource(stream)); Element root = myDoc.getDocumentElement(); NodeList releaseNode = root.getElementsByTagName("Release"); if (releaseNode.getLength() < 1) { Log.v(TAG, "No release node found"); return; } for (int i = 0; i < nodeList.getLength(); i++) { String name = ""; String value = ""; Node node = nodeList.item(i); if ((node.getNodeName().equals("#text")) || (node.getChildNodes().getLength() > 3) || (node.getTextContent().trim().equals("") || node.getTextContent() == null)) { Log.w(TAG, "Invalid node."); continue; } name = node.getNodeName(); value = node.getTextContent(); if (name.equals("VersionCode")) { releaseInfo.versionCode = Integer.valueOf(value); } else if (name.equals("VersionName")) { releaseInfo.versionName = value; } else if (name.equals("Description")) { releaseInfo.whatsNew = value; } else if (name.equals("Url")) { releaseInfo.url = value; } else if (name.equals("CheckSum")) { releaseInfo.checkSum = value; } else if (name.equals("Date")) { releaseInfo.date = value; } }
更多相关文章
- android中遍历arrayList的四种方法
- Android 进阶——Android Studio 项目结构详细述及Gradle脚本语
- Android文件递归遍历
- Android 节点进度条
- Android--遍历SQLite数据库下的所有表名
- Android中遍历文件夹、比较文件类型测试
- C#中关于foreach遍历使用的深入理解
- c# webservice中访问http和https的wsdl以及生成配置节点的不同之
- c++ 图解层序遍历和逐层打印智能指针建造的二叉树