Android的Volley库解析xml响应?

use*_*oid 11 android-volley

我正在使用齐射库并在XML中获得响应.我想知道如何使用/ volley库解析响应.谢谢.

Ali*_*lif 13

看看Volley的资料来源:

https://android.googlesource.com/platform/frameworks/volley/+/android-4.3_r0.9/src/com/android/volley/toolbox/

如果我没有记错的话,它带有JsonObjectRequestStringRequest,但没有XMLRequest.

因此,您可以使用StringRequest获取响应String,然后使用任何XML编组/序列化工具(例如:)Simple将其转换为Object.

检查Simple- XML编组工具:http: //simple.sourceforge.net/download.php

如果您使用StringRequest,请执行以下操作:

StringRequest request = new StringRequest(Request.Method.GET, url, 
    new Response.Listener<String>() 
    {
        @Override
        public void onResponse(String response) {
          // convert the String response to XML
          // if you use Simple, something like following should do it
            Serializer serializer = new Persister();
            serializer.read(ObjectType.class, response);  
        }
    }, 
    new Response.ErrorListener() 
    {
         @Override
         public void onErrorResponse(VolleyError error) {                                
         // handle error response
       }
    }
);
queue.add(request);
Run Code Online (Sandbox Code Playgroud)

或者,您可以通过从Request扩展来创建自己的XMLRequest类,并使用XML Serialization工具(如Simple)返回Object.

希望能帮助到你,

  • 我最近不得不创建一个SimpleXMLRequest类来使用Volley解析XML Response to Objects.以下是任何人都需要的代码片段:https://gist.github.com/itsalif/6149365 (9认同)

Piy*_*ush 10

    StringRequest req = new StringRequest(Request.Method.GET, url, 
    new Response.Listener<String>() 
    {
        @Override
        public void onResponse(String response) {
            processData(response);
        }
    }, 
    new Response.ErrorListener() 
    {
         @Override
         public void onErrorResponse(VolleyError error) {                                
         // handle error response
       }
    }
);
Run Code Online (Sandbox Code Playgroud)

在processdata方法中解析响应.使用简单的sax解析器或dom解析器来解析响应字符串.