Volley library for Android parse xml response?

前端 未结 4 638
一生所求
一生所求 2020-12-06 11:08

I am using volley library and getting response in XML.I want to know how we can parse response using /volley library.Thank you.

4条回答
  •  粉色の甜心
    2020-12-06 12:00

    First you have to get response string by:

      StringRequest req = new StringRequest(Request.Method.GET, url, 
    new Response.Listener() 
    {
        @Override
        public void onResponse(String response) {
             InputStream is = convertStringToDocument(reponse);
             // now you can parse xml 
        }
    }, 
    new Response.ErrorListener() 
    {
         @Override
         public void onErrorResponse(VolleyError error) {                                
         // handle error response
       }
    }
    

    );

    after getting respone via volley you have to convert String response to input stream by this method:

     private static InputStream convertStringToDocument(String xmlStr) {
        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
        DocumentBuilder builder;
        try
        {
            builder = factory.newDocumentBuilder();
            Document doc = builder.parse( new InputSource( new StringReader( xmlStr ) ) );
            ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
            Source xmlSource = new DOMSource(doc);
            Result outputTarget = new StreamResult(outputStream);
            TransformerFactory.newInstance().newTransformer().transform(xmlSource, outputTarget);
            InputStream is = new ByteArrayInputStream(outputStream.toByteArray());
            return is;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }
    

提交回复
热议问题