VTD-XML读取没有结果

时间:2018-05-25 04:39:54

标签: java android xml rss vtd-xml

我正在尝试使用VTD-XML读取RSS内容。以下是RSS的示例。

<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
   <?xml-stylesheet type="text/xsl" href="rss.xsl"?>
   <channel>
      <title>MyRSS</title>
      <atom:link href="http://www.example.com/rss.php" rel="self" type="application/rss+xml" />
      <link>http://www.example.com/rss.php</link>
      <description>MyRSS</description>
      <language>en-us</language>
      <pubDate>Tue, 22 May 2018 13:15:15 +0530</pubDate>
      <item>
         <title>Title 1</title>
         <pubDate>Tue, 22 May 2018 13:14:40 +0530</pubDate>
         <link>http://www.example.com/news.php?nid=47610</link>
         <guid>http://www.example.com/news.php?nid=47610</guid>
         <description>bla bla bla</description>
      </item>
</channel>
</rss>

无论如何,一些RSS源可以包含更多样式信息等。但是在每个RSS中,<channel><item>都是常见的,至少对于我需要使用的那些。 / p>

我尝试使用VTD XML尽快读取它。以下是代码。

VTDGen vg = new VTDGen();
        if (vg.parseHttpUrl(appDataBean.getUrl(), true)) {
            VTDNav vn = vg.getNav();
            AutoPilot ap = new AutoPilot(vn);
            ap.selectXPath("/channel/item");
            int result = -1;

            while ((result = ap.evalXPath()) != -1) {
                if (vn.matchElement("item")) {
                    do {
                        //do something with the contnets in the item node
                        Log.d("VTD", vn.toString(vn.getText()));
                    } while (vn.toElement(VTDNav.NEXT_SIBLING));
                }
            }
        }

不幸的是,它没有打印任何东西。我在这做错了什么?另外,RSS源非常大,所以我需要在几毫秒内读取它们。此代码在Android上。

0 个答案:

没有答案