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;                }            }

更多相关文章

  1. android中遍历arrayList的四种方法
  2. Android 进阶——Android Studio 项目结构详细述及Gradle脚本语
  3. Android文件递归遍历
  4. Android 节点进度条
  5. Android--遍历SQLite数据库下的所有表名
  6. Android中遍历文件夹、比较文件类型测试
  7. C#中关于foreach遍历使用的深入理解
  8. c# webservice中访问http和https的wsdl以及生成配置节点的不同之
  9. c++ 图解层序遍历和逐层打印智能指针建造的二叉树

随机推荐

  1. Android(安卓)NDK开发之旅32--云服务器Ub
  2. Android定制:修改开机启动画面
  3. 个人解读Activity之四-Part1
  4. 数据库小白:GROUP BY和ORDER BY不能一起用
  5. 试读《Android软件安全与逆向分析》
  6. [转]修改Android的自带程序“屏幕锁”
  7. 09-Garbage Collection in Android
  8. android sqlite的事务应用
  9. android中intent的详解、用法、参数
  10. Unity 与 Android(安卓)互调用