Я пытаюсь получить текст элемента тега "link" в этом xml: http://www.istana.gov.sg/latestupdate/rss.xml
Я закодировал, чтобы получить первую статью.
URL = getResources().getString(R.string.istana_home_page_rss_xml);
// URL = "http://www.istana.gov.sg/latestupdate/rss.xml";
try {
doc = Jsoup.connect(URL).ignoreContentType(true).get();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// retrieve the link of the article
links = doc.select("link");
// retrieve the publish date of the article
dates = doc.select("pubDate");
//retrieve the title of the article
titles = doc.select("title");
String[] article1 = new String[3];
article1[0] = links.get(1).text();
article1[1] = titles.get(1).text();
article1[2] = dates.get(0).text();
Статья получается красиво, но ссылка возвращает значение "(все значения элементов ссылки возвращаются). Названия и даты не имеют проблем. Тег ссылки состоит из текста URL. Кто-нибудь знает, почему он возвращает значение" "?
Похоже, что парсер HTML по умолчанию не может распознать <link>
как действительный тег и автоматически закрывает его <link />
, что означает, что содержимое этого тега пуст.
Чтобы решить эту проблему вместо парсера HTML, вы можете использовать синтаксический анализатор XML, который не имеет особого отношения к именам тегов.
doc = Jsoup.connect(URL)
.ignoreContentType(true)
.parser(Parser.xmlParser()) // <-- add this
.get();