Android Jsoup解析RSS没有获得链接的价值

时间:2015-01-21 23:14:20

标签: java android parsing rss jsoup

我有简单的RSS来解析对象的项目:

    String html = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n" +
            "<rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\">\n" +
            "\n" +
            "<channel>\n" +
            "  <title>W3Schools Home Page</title>\n" +
            "  <link>http://www.w3schools.com</link>\n" +
            "  <description>Free web building tutorials</description>\n" +
            "  <item>\n" +
            "    <title>RSS Tutorial</title>\n" +
            "    <link>http://www.w3schools.com/rss</link>\n" +
            "    <description>New RSS tutorial on W3Schools</description>\n" +
            "    <image>\n" +
            "      <url>http://feed.mikle.com/images/rssicon.png</url>\n" +
            "    </image>\n" +
            "  </item>\n" +
            "  <item>\n" +
            "    <title>XML Tutorial</title>\n" +
            "    <link>http://www.w3schools.com/xml</link>\n" +
            "    <description>New XML tutorial on W3Schools</description>\n" +
            "    <image>\n" +
            "      <url>http://feed.mikle.com/images/rssicon.png</url>\n" +
            "    </image>\n" +
            "  </item>\n" +
            "</channel>\n" +
            "\n" +
            "</rss>";

    Document doc = Jsoup.parse(html);

    Log.d("string", doc.toString());

    for( Element item : doc.select("item") ) // Select all items
    {
        Log.d("title", item.select("title").first().text()); //OK
        Log.d("link", item.select("link").first().text()); //WTF?
        Log.d("image url", item.select("url").first().text());
    }

为什么我无法获得价值链接?

Log.d(“link”,item.select(“link”)。first()。text()); // WTF吗

在控制台中: D / link:[01-21 23:07:26.710 2856:2856 D / image url]

问题在哪里?

如何获取foreach项目中的URL?

    <image>
       <url>http://feed.mikle.com/images/rssicon.png</url>
    </image>

由于

1 个答案:

答案 0 :(得分:0)

这是因为通常html <link>标签不会有任何正文。在你解析它们的情况下,链接标记将变为空(<link/>)(你可以在日志Log.d("string", doc.toString());中观察到它。要么你需要用其他标记来定义它(比如{{1} }或<p>)或将其转换为类似<a>的内容。在常规链接标签用于导入css文件。