Я пытаюсь проанализировать XML HttpResponse, который я получаю из HttpPost на сервер (last.fm), для приложения Android last.fm. Если я просто разбираю его на строку, я вижу, что это нормальная строка xml со всей необходимой информацией. Но я просто не могу разобрать сингл NameValuePairs. Это мой объект HttpResponse:
HttpResponse response = client.execute(post);
HttpEntity r_entity = response.getEntity();
Я пробовал две разные вещи, и не из них работали. Сначала я попытался найти 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();
}
}
После этого кода имя и проигрывание остаются "пустыми". Поэтому я попытался использовать 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();
}
Кажется, что это происходит намного раньше, так как даже не позволяет установить переменную playcount. Но, как я сказал, если я это сделаю:
EntityUtils.toString(r_entity);
Я получу идеальную строку xml. Таким образом, не должно возникать никаких проблем с этим, поскольку HttpResponse содержит правильную информацию. Что я делаю неправильно?