我正在使用jsoup使用java解析rss feed 。尝试选择文档中的第一个元素时,我无法获得结果。<link>
当我使用title.text()此代码时,可以获得预期的结果:
Document doc = Jsoup.connect(BLOG_URL).get();
Element title = doc.select("rss channel title").first();
System.out.println(title.text()); // print the blog title...
Run Code Online (Sandbox Code Playgroud)
但是,link.text()工作方式不同:
Element link = doc.select("rss channel link").first();
System.out.println(link.text()); // prints empty string
Run Code Online (Sandbox Code Playgroud)
当我检查doc.select("rss channel link")的Element link对象是人口稠密,但.println()声明仅仅是一个空字符串。
是什么让.select("rss channel link")dang如此特别,以至于我不知道如何使用它?
编辑:RSS响应开始是这样的:
Run Code Online (Sandbox Code Playgroud)<?xml version="1.0" encoding="UTF-8"?> <rss> <channel> <title>The Blog Title</title> <link>http://www.the.blog/category</link>
您的rss feed是XML,而不是HTML。为此,必须告诉JSoup使用其XMLParser。这将起作用:
String rss = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
+"<rss><channel>"
+ "<title>The Blog Title</title>"
+ "<link>http://www.the.blog/category</link>"
+"</channel></rss>";
Document doc = Jsoup.parse(rss, "", Parser.xmlParser());
Element link = doc.select("rss channel link").first();
System.out.println(link.text()); // prints empty string
Run Code Online (Sandbox Code Playgroud)
说明:
HTML中的链接标记采用不同的格式,并且Jsoup尝试将<link>您的rss 解释为此类html标记。
| 归档时间: |
|
| 查看次数: |
1427 次 |
| 最近记录: |