如何提取特定的 ownText JSOUP

Sab*_*nan 2 java jsoup

String html = "<p>An <a href='http://example.com/'><b>example</b></a> link.</p>";
Document doc = Jsoup.parse(html);
Element link = doc.select("a").first();

String text = doc.body().text(); // "An example link"
String linkHref = link.attr("href"); // "http://example.com/"
String linkText = link.text(); // "example""

String linkOuterH = link.outerHtml(); 
    // "<a href="http://example.com"><b>example</b></a>"
String linkInnerH = link.html(); // "<b>example</b>"
Run Code Online (Sandbox Code Playgroud)

在这个例子中,我只想提取“An”、“link”等。例如,我想获取节点之前的文本(即“An”)和节点之后的文本(即“link”)。在上面的例子中

小智 5

要获取该段落的文本,请选择它并询问其自己的文本:

Element p = doc.select("p").first();
System.out.println(p.ownText());
Run Code Online (Sandbox Code Playgroud)

如果您想要构造该文本的部分,您可以遍历该元素的子节点并仅选择那些 TextNode 实例:

for (Node node :p.childNodes()){
    if (node instanceof TextNode){
        System.out.println(((TextNode)node).text()); 
    }
}
Run Code Online (Sandbox Code Playgroud)