Estoy tratando de analizar el XML HttpResponse que obtengo de un HttpPost a un servidor (last.fm), para una aplicación de Android last.fm. Si simplemente lo analizo en cadena, puedo verlo como una cadena xml normal, con toda la información deseada. Pero simplemente no puedo analizar los NameValuePairs individuales. Este es mi objeto HttpResponse:Analizando un XML HttpResponse
HttpResponse response = client.execute(post);
HttpEntity r_entity = response.getEntity();
Probé dos cosas diferentes y ninguna funcionó. Primero traté de recuperar los NameValuePairs:
List<NameValuePair> answer = URLEncodedUtils.parse(r_entity);
String name = "empty";
String playcount = "empty";
for (int i = 0; i < answer.size(); i++){
if (answer.get(i).getName().equals("name")){
name = answer.get(i).getValue();
} else if (answer.get(i).getName().equals("playcount")){
playcount = answer.get(i).getValue();
}
}
Después de este código, el nombre y la cuenta de juego permanecen "vacíos". Así que he intentado utilizar un analizador XML:
DocumentBuilder db = DocumentBuilderFactory.newInstance().newDocumentBuilder();
Document answer = db.parse(new DataInputStream(r_entity.getContent()));
NodeList nl = answer.getElementsByTagName("playcount");
String playcount = "empty";
for (int i = 0; i < nl.getLength(); i++) {
Node n = nl.item(i);
Node fc = n.getFirstChild();
playcount Url = fc.getNodeValue();
}
Esto parece fallar mucho antes, ya que ni siquiera llegar a establecer la variable de contador de reproducciones. Pero como dije, si realizo esto:
EntityUtils.toString(r_entity);
Voy a obtener una cadena xml perfecta. Por lo tanto, no debería ser problema analizarlo, ya que HttpResponse contiene la información correcta. ¿Qué estoy haciendo mal?
sí. tienes razón. Lo cambié pero pero ambas variables siguen siendo "vacías" – gaussd