如何判断列表中的元素是否为<a>?</a>类型

时间:2012-12-09 17:24:53

标签: jsoup

我正在尝试仅处理列表中<a>类型的元素:

int i = 0;
for (Element el : els) {
    i++;        
    Log.w(TAG, "--------------------------");
    Log.w(TAG, "el(" + i + "): " + el.html());
    if (el.tagName().contentEquals("a")) {
        Log.d(TAG, "<a> only! el(" + i + "): " + el.html());
      }
 }

但LogCat输出仅显示Log。 w (),而不是Log。 d (),尽管我可以在日志中清楚地看到。 strong> w ()输出有<a>类型的元素:

 --------------------------
 el(1): 
 --------------------------
 el(2): <a href="http://www.ddd.tld/article/ar01.html?mod=Header"><em>Subject1:</em> One line of text </a>
 --------------------------
 el(3): 
 --------------------------
 el(4): 
 --------------------------
 el(5): <a href="http://www.ddd.tld/article/ar02.html?mod=Header"><em>Subject Two:</em> Another line of text </a>
 --------------------------
 el(6): 
 --------------------------
 el(7): 
 --------------------------
 el(8): <img src="images/sub_key.gif" />&nbsp;<a href="http://www.ddd.tld/article/ar03.html?mod=Header"><em>Subject Three:</em> Yet another line of text </a>
 --------------------------
 el(9): 
 --------------------------
 el(10): 

我错过了什么?我做错了什么?

1 个答案:

答案 0 :(得分:1)

选择具有<a>标记的所有元素的正确方法是使用CSS选择器。您可以在Elements对象上使用它。要将List<Element>转换为Elements,您只需使用Elements(Element... elements)构造函数,如下所示:

Elements webPage = new Elements(els);

由此,您可以使用CSS Selectors提取Element,如下所示:

Elements aTags = webPage.select("a");

然后您可以遍历这些并按照您的意愿进行操作。