jsoup查询多个选择器

时间:2012-10-18 17:08:02

标签: jsoup

我有以下html:

<div>
    <h1>
        <a>1</a>
    </h1>
    <h2>
        <a>2<a>
    </h2>
    <h3>
        <a>3</a>
    </h3>
</div>

是否有更好的方法来选择所有锚点 div> h1&gt; a,div&gt; h2&gt; a,div&gt; h3&gt;一个。 我正在寻找像div&gt;这样的东西(h1,h2,h3)&gt;一个

谢谢, 忠

4 个答案:

答案 0 :(得分:14)

有可能实现这一目标:

div.select("h1,h2,h3").select("a");

或者,如果您只需要div中的锚点:

div.select("a");

答案 1 :(得分:1)

您可以使用选择(“h1,h2,h3”)

选择h1,h2,h3元素

答案 2 :(得分:0)

是,
你可以使用这样的东西

考虑div是你通过这样做得到的元素的对象

Element div = document.select("div").first();
Elements anchors = div.select("a");
for(Element e: anchors)
{
  System.out.println("Anchor Text "+e.text()+" HREF VALUE = "+e.attr("href"));
}

这将打印div中包含文本的所有锚点以及HREF的值

答案 3 :(得分:0)

希望这有帮助,

import java.io.File;
import java.io.IOException;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;


public class testXML {

public static void main(String[] args) throws IOException {
    File input = new File("D:\\test.html");
    Document doc = Jsoup.parse(input, "UTF-8");
    Elements divTag = doc.select("div");
    for(Element value: divTag){
        System.out.println(value.text());
    }

    Elements divTagH = doc.select("div").select("h1,h2,h3");
    for(Element value: divTagH){
        System.out.println(value.text());
    }
}

}

<强>输出:

1 2 3 1 2 3