【问题标题】:how to parse the string of xml data in android如何在android中解析xml数据的字符串
【发布时间】:2013-03-10 23:23:41
【问题描述】:

我是android编程的新手。我的要求是调用网络服务。我成功地得到了网络服务的响应。如何在android中解析响应。给我解决方案。

这是获取响应的代码:

 HttpResponse response = httpclient.execute(httppost);
           String str=response.getStatusLine().toString();

           System.out.println("========URL STATUS========"+str);

           HttpEntity r_entity = response.getEntity();

           if( r_entity != null ) {
               result = new byte[(int) r_entity.getContentLength()];
               if(r_entity.isStreaming()) {
                    is = new DataInputStream(r_entity.getContent());
                   is.readFully(result);

               }
           }

           httpclient.getConnectionManager().shutdown();
           String responsedata= (new String(result).toString());

【问题讨论】:

  • 你得到什么类型的响应?
  • 首先看一下EntityUtils.toString(),其次:使用相同的xml解析器,比如SimpleXML或其他的东西

标签: android web-services parsing xml-parsing


【解决方案1】:

以下示例用于 dom 解析器。

 DocumentBuilderFactory dbf =DocumentBuilderFactory.newInstance();
 DocumentBuilder db = dbf.newDocumentBuilder();
 InputSource is = new InputSource();
 StringReader sr=new StringReader(result.toString());
 is.setCharacterStream(sr);
 Document doc = db.parse(is);
 NodeList nodes = doc.getElementsByTagName("your root tag");

 //get your other tag elements.

http://www.mkyong.com/java/how-to-read-xml-file-in-java-dom-parser/。 dom解析器示例。

http://www.mkyong.com/java/how-to-read-xml-file-in-java-sax-parser/。萨克斯解析器示例。

Dom 是基于 w3c 的解析器。 Dom 比 sax 慢,因为它使用树节点并且必须在内存中。所以不推荐使用DOM解析器解析大数据。

另一方面,SAX 比 dom 快。推荐用于大型 xml 数据。

以上链接为您提供了两者的示例。使用上述任何解析器从 xml 标记中解析和获取值。

【讨论】:

  • 我解析了结果,但它把整个结果作为一个字符串给出。如何通过 xml 标签明智地分割?
  • 你必须使用 sax 或 dom 解析器或简单的 xml 解析器来解析 xml
【解决方案2】:

您可以尝试使用 SimpleXmlParser。这是一个原生的android类。它比 DOM xml 解析器更简单。

【讨论】:

    【解决方案3】:

    您需要的只是一个 android xml 解析库。 android有很多xml解析。

    official tutorial

    还有一篇文章“comparing methods for xml parsing in android

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-25
      • 1970-01-01
      • 2013-04-15
      • 1970-01-01
      相关资源
      最近更新 更多