Разбор XML HttpResponse

Я пытаюсь проанализировать XML HttpResponse, который я получаю от HttpPost на сервер (last.fm), для приложение last.fm для Android. Если я просто проанализирую его на строку, я увижу, что это обычная строка 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 содержит правильную информацию. Что я делаю не так?

10
задан gaussd 11 February 2011 в 22:22
поделиться