2013-11-09 36 views
2
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>" 

在這個例子中,我想提取「An」,「link」等。例如,我想要在節點之前獲得文本,即「An」和節點之後,即「鏈接」。在上面的例子中如何提取特定的ownText JSOUP

回答

3

要獲得該段文本,選擇它,並要求其自己的文本:

Element p = doc.select("p").first(); 
System.out.println(p.ownText()); 

如果希望構建一個文本的部分,你可以遍歷的孩子節點元素並只選擇那些TextNode實例:

for (Node node :p.childNodes()){ 
    if (node instanceof TextNode){ 
     System.out.println(((TextNode)node).text()); 
    } 
}