I am using volley library and getting response in XML.I want to know how we can parse response using /volley library.Thank you.
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;
}