从HTML源中提取多个标记(使用Java)

时间:2012-06-17 20:09:04

标签: java android html

在字符串中:

    "<span >x </span><span >y</span> <span >z</span>" 

我想在第三个<span>标记中提取数据,即“z”。我怎样才能直接参考第三个?

    import org.jsoup.*;
    import org.jsoup.nodes.*;
    import org.jsoup.Jsoup;
    import org.jsoup.nodes.Element;

    String str = "  <span >x </span>  <span >y</span>   <span>  z   </span>  ";
    Document doc = Jsoup.parse(str);
    Elements link = doc.getElementsByTag("span");

    for (Element link2 : link)
    {
        p= link.text();
    }

2 个答案:

答案 0 :(得分:0)

要在Java中查找String的第三个实例,请尝试这样简单的事情:

String key = "<span >";
int index = -1;
for(int i = 0; i < 3; i++) {
    index = str.indexOf(key, index + key.length());
}

if(index > -1) {
    // Found it
    String result = str.substring(index, str.indexOf("</span>", index + key.length()));
}

此外,如果只有三个<span >元素,您可以使用:

index = str.lastIndexOf(key);

答案 1 :(得分:0)

我看到你正在使用JSoup。我对此并不熟悉,但由于文档说它与jQuery类似,我猜想像doc.select('parent_element_selector').find('span').get(0)

我相信this就是你想要的。