Ich benutze Volley-Bibliothek und bekomme Antwort in XML. Ich möchte wissen, wie wir Antwort mit/Volley-Bibliothek analysieren können. Danke.Volley-Bibliothek für Android parsen XML-Antwort?
Antwort
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
}
}
);
in Process Methode parsen die response.Use einfachen SAX-Parser oder dom Parser die Antwortzeichenfolge zu analysieren.
bei Volley der Quelle der Suche:
Wenn ich mich nicht täusche, kommt es mit JsonObjectRequest
und StringRequest
, aber keine XMLRequest.
So können Sie StringRequest
verwenden, um die Antwort als String
, zu erhalten und verwenden Sie dann ein beliebiges XML-Rangier/Serialisierung Werkzeug (ex: Simple
), um ein Objekt zu konvertieren.
Check out Simple
- XML-Rangierung Werkzeug: http://simple.sourceforge.net/download.php
Wenn Sie StringRequest
, so etwas wie es tun soll Folgendes:
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);
Alternativ können Sie Ihre eigene XMLRequest Klasse, indem sie von Antrag schaffen könnten und verwenden Sie das XML-Serialisierungstool (wie Simple), um das Objekt zurückzugeben.
Hoffe, dass es hilft,
musste ich vor kurzem eine SimpleXMLRequest Klasse erstellen XML-Antwort auf Objekte mit Volley zu analysieren. Hier ist das Code-Snippet, wenn jemand benötigt: https: //gist.github.com/itsalif/6149365 – Alif
Vielen Dank Alif für Ihre Antwort. – userAndroid
Also, zum Parsen von Daten müssen wir unsere eigene Parsing-Logik verwenden? – userAndroid
Hier ist meine Lösung. Wie Sir Alif oben sagte, kann Volley Ihnen eine rohe Kette von XML-Daten liefern, die vom Server empfangen wurden. Alles, was Sie tun müssen, ist diesen String entsprechend Ihrer App-Logik zu analysieren. Also habe ich zum Parsen der Zeichenfolge den SAX-Parser verwendet. Ich werde hier nicht beschreiben, wie man den SAX-Parser benutzt, weil Sie jede Menge Tutorials selbst finden können. Ich werde nur den Schlüsselpunkt beschreiben. Der folgende Codeabschnitt zeigt den Zeitpunkt, an dem Sie Instanzen von SAXParserFactory, SAXParser, XMLReader usw. erstellen. Auch hier erstellen Sie eine Instanz von InputSource, und dies ist der Schlüsselpunkt. Normalerweise öffnen Sie eine Verbindung mit einer bestimmten URL-Adresse und der SAX-Parser analysiert die empfangenen Daten für Sie. Aber soweit wir versuchen, die Volley-Bibliothek zu verwenden, geben wir InputSource nicht den InputStream, sondern einen StringReader (vollständige Informationen über die Eingabequelle und seine öffentlichen Konstruktoren finden Sie unter here). Es wird wie folgt aussehen:
public void makeList(String s){
SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser sp = factory.newSAXParser();
XMLReader xmlReader = sp.getXMLReader();
SaxHandler handler = new SaxHandler();
xmlReader.setContentHandler(handler);
InputSource is = new InputSource(new StringReader(s));
is.setEncoding("UTF-8");
xmlReader.parse(is);
}
Also, in der Aktivität, in dem Sie die StringRequest von Volley bekommen, in onRespone() Methode, die Sie, dass die Antwort auf den makelist (String s) Methode übergeben können (oder was auch immer Sie die Methode mit der gleichen Funktionalität aufgerufen), die diese Antwort analysiert. Hoffe das hilft! Wenn Sie Fragen haben, fragen Sie bitte in Kommentaren.
Zuerst müssen Sie Antwortstring erhalten von:
StringRequest req = new StringRequest(Request.Method.GET, url,
new Response.Listener<String>()
{
@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
}
}
);
nach respone über Volley bekommen müssen Sie String Reaktion auf Eingangsstrom durch diese Methode konvertieren:
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;
}
- 1. DOM Parsen Android
- 2. Parsen Android Volley JSONArray Antwort
- 3. Parsen von JSON in Android?
- 4. Wie man XML in Android zu parsen?
- 5. Nested JSON Parsen in Android mit url
- 6. Wie parsen mehrere JSON-Array in Android?
- 7. Parsen verschachtelten JSON-Objekt in Android
- 8. Eval parsen für eine JSON
- 9. Parsen einer android Bildschirm Dump-Datei
- 10. Android + Jsoup - Probleme beim Parsen HTML
- 11. Parsen von JSON in Android, typeMismatch Fehler?
- 12. Android Java java.lang.NullPointerException: parsen Server Recycler Ansicht
- 13. Parsen Json Array von Webservice zu Android
- 14. Android: Parsen von XML mit KSOAP
- 15. Wie Parsen Login-Antwort in Android?
- 16. Parsen in Android von WordPress JSON API
- 17. Android Json Bild recyclerView mit picasso Parsen
- 18. Fehler beim Parsen von XML: ungebundenes Präfix für Mapbox
- 19. Das Parsen von Konstruktorinitialisierer für Vorlage verstehen
- 20. Bestehende Klasse/Methode für vollqualifizierte Typname Parsen
- 21. JSonArray zu String für mit Gson Parsen
- 22. Python Regex für das Parsen von Dateinamen
- 23. Parsen Ausnahme für MultiLineString Feld in elasticsearch
- 24. Spring Utility für das Parsen von URIs
- 25. Parsen für JSON-Daten in Javascript
- 26. wie laravel zu json zu parsen, und es von android
- 27. Android Google-Shopping-API Kraft schließt beim Parsen
- 28. JSON Parsen Ansicht mit mehreren Objekten zur Liste Android
- 29. android -verwenden Retrofit lib Fehler bekommen die Antwort beim Parsen
- 30. Parsen Android SDK erhalten ArrayList und geben Sie
@ IftikarUrrhmanKhan Ich habe es nie bemerkt, danke ich habe die Antwort für die gleiche aktualisiert. – Piyush
Wie werde ich die POST-Methode mit Benutzername und Passwort im XML-Format anfordern. – Satheesh
nur ein Detail, Sie haben Tippfehler auf ProcessData (Antwort); – estebanuri