问题 jsoup查询多选择器


我有以下html:

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

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

谢谢, 忠


11559
2017-10-18 17:08


起源



答案:


有可能实现这一目标:

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

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

div.select("a");

13
2018-01-05 01:16





您可以使用选择h1,h2,h3元素 选择( “H1,H2,H3”)


1
2018-02-08 05:36





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

认为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值的所有锚点


0
2018-03-05 09:15





希望这可以帮助,

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


0
2017-11-16 00:09