2012-08-26 85 views
2

有許多資源可以解析HTML頁面並提取文本內容。 Jsoup就是一個例子。在我的情況下,我想提取帶有每個句子出現的html標籤的文本內容。例如,利用這個頁面HTML解析和提取文本

<html> 
<head><title>Test Page</title> 
<body> 
<h1>This is a test page</h1> 
<p> The goal is to extract <b>textual content <em> with html tags</em> </b> from html pages. 
</body> 
</html> 

我期待的輸出是這樣的:

<h1>This is a test page</h1> 
<p> The goal is to extract <b>textual content <em> with html tags</em> </b> from html pages. 

換句話說,我想包括網頁的文本內容中的特定HTML標籤。

回答

0

爲了讓您的結果,你可以使用這個:

final String html = "<html>" 
     + "<head><title>Test Page</title>" 
     + "<body>" 
     + "<h1>This is a test page</h1>" 
     + "<p> The goal is to extract <b>textual content <em> with html tags</em> </b> from html pages." 
     + "</body>" 
     + "</html>"; 

// Parse the String into a Jsoup Document 
Document doc = Jsoup.parse(html); 
Elements body = doc.body().children(); 

// Do further things here ... 
System.out.println(body); 

不是字符串html您可以加載一個文件或網站太 - jsoup提供了這一切。

在此示例中,body包含您作爲結果發佈的html。

或者您是否需要選擇「h1後跟p標籤」?

然而,你可能需要看看Jsoup Selector API

+0

謝謝奧洛。這是我錯過的。 – DotNet

0

分兩步做。首先,如您所述,使用JSoup創建一個DOM樹。然後使用XSL過濾器處理它。在XSL過濾器中,您只能提取您感興趣的標籤。

+0

將這項工作遞歸?標籤裏面的標籤像em標籤裏面的b標籤裏面有p標籤嗎? – DotNet