Расскажу о том, как можно распарсить XHTML или даже HTML с помощью JSoup в Android. Лично я парсил XHTML. Для этого нужно:
- Скачать jar файл JSoup библиотеки здесь.
- Подключить JSoup.jar к нашему проекту. Для этого нажимаем правой кнопкой на проект, далее выбираем Build Path->Configure Build Path.

В появившемся окне нажимаем Java Build Paths, далее выбираем вкладку Libraries и добавляем через Add Jars.
- Создать объект класса Document, который, кстати, должен быть именно из Jsoup библиотеки, а не родных библиотек. Это можно выбрать при нажатии Shift+Cmd+O после того, как вы добавили код, использующий JSoup. Объект класса Document в данном случае создается из того, что подкачивается через URL. Далее с этим объектом можно работать. Например, в данном случае из него извлекаются все ссылки с тэгом а, и создается массив из ссылок и их атрибутов href. Сначала все добавляем в структуру ArrayList, затем ArrayList заносим в String[] массив. Все, что добавлено, пишется в LogCat через Log.v. В данном случае, метод doInBackground должен быть в составе класса AsyncTask, просто не хочу приводить весь код, это будет лишним.
private static final String TAG = "DiseaseActivity"; private ArrayList<String> diseasesList = new ArrayList<String>(); private ArrayList<String> linksList = new ArrayList<String>(); private String[] diseasesArray = new String[]{"Загрузка болезней"}; private String[] linksArray = new String[]{"Ссылка"}; public static String[] ConvertToStringArray(ArrayList list) { return (String[])list.toArray(new String[0]); } protected Void doInBackground(String... urls) { try { String urlString = urls[0]; Document doc = Jsoup.connect(urlString).get(); Elements links = doc.select("a"); diseasesList.clear(); linksList.clear(); for (Element link : links) { diseasesList.add(link.text()); linksList.add(link.attr("href")); Log.v(TAG, e.text()); } diseasesArray = ConvertToStringArray(diseasesList); linksArray = ConvertToStringArray(linksList); } catch (ClientProtocolException e) { Error = e.getMessage(); cancel(true); } catch (IOException e) { Error = e.getMessage(); cancel(true); } return null; }
Это лишь один из примеров использования JSoup. Возможностей у него много и здесь можно найти более подробное их описание.