Jsoup ошибочно закрывает тег и выводит текст тега из тега
Я анализировал фид, но он ошибочно закрывает тег
<link />http://wwww
Вот мой код для получения HTML с URL
Document doc = Jsoup.connect(pURL).get();
doc.outputSettings().outline(false);
doc.outputSettings().prettyPrint(false);
String html = doc.html();
Это дает следующий XML
<!--?xml version="1.0" encoding="utf-8"?--><html><head></head><body><rss version="2.0"> <channel>
<title>Fenopy rss</title>
<link />http://fenopy.eu/ <----------@see this
<description>Fenopy torrent rss</description>
<language>en-us</language>
<item>
<title>Broken City 2013 CAMRip English</title>
<guid ispermalink="true">http://fenopy.eu/torrent/broken+city+2013+camrip+english/OTU0MDI1MA</guid>
<pubdate>Sun, 27 Jan 2013 19:23:21 GMT</pubdate>
<category>Movies</category>
<link />http://fenopy.eu/torrent/bnglish/OTU0MDI1MA <----------@see this
<enclosure url="http://fenopy.eu/torrent/Broken-City-2013-CAMRip-English/OTU0MDI1MA==/download.torrent" length="783829383" type="application/x-bittorrent" />
<description> Category: Movies<br/>Size: 747.5 MB<br/>Ratio: 60 seeds, 11 leechers<br/> </description>
</item>
но когда я открываю его в браузере, он показывает правильный XML
<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" > <channel>
<title>Fenopy rss</title>
<link>http://fenopy.eu/</link>
<description>Fenopy torrent rss</description>
<language>en-us</language>
<item>
<title>Broken City 2013 CAMRip English</title>
<guid isPermaLink='true'>http://fenopy.eu/torrent/broken+city+2013+camrip+english/OTU0MDI1MA</guid>
<pubDate>Sun, 27 Jan 2013 19:23:21 GMT</pubDate>
<category>Movies</category>
<link>http://fenopy.eu/torrent/broken+city+2013+camrip+english/OTU0MDI1MA</link>
<enclosure url="http://fenopy.eu/torrent/Broken-City-2013-CAMRip-English/OTU0MDI1MA==/download.torrent" length="783829383" type="application/x-bittorrent" />
<description><![CDATA[ Category: Movies<br/>Size: 747.5 MB<br/>Ratio: 60 seeds, 11 leechers<br/> ]]></description>
</item>
Я не знаю, что происходит. есть ли ошибка в Jsoup 1.7.2 jar? Помоги мне...
1 ответ
Решение
Это не ошибка. Ваш тип содержимого ответа GDATA: application/rss+xml
так что вы должны указать свой Parser
синтаксический анализатор XML; в противном случае по умолчанию это HTML-парсер, который работает по-другому.
// load Document
Document doc = Jsoup.connect(URL_SOURCE).ignoreContentType(true).parser(Parser.xmlParser()).get();
// Если вы установили контур и prettyprint = true, то вам нужно искать символы \n и \t и удалять их, поэтому сделайте их ложными
// config output
doc.outputSettings().outline(false);
doc.outputSettings().prettyPrint(false);
// output result
System.out.println(doc.html());
Результат <link>
правильно вывести, если вы укажете парсер XML.