2016-10-26 33 views
1

我從網頁獲取HTML並試圖從中檢索數據。使用Jsoup替換所有不可預知的組合HTML標記

我有我想用<h2>替換的<h3><strong>title</strong><h3>之類的HTML。 但是,有時我發現內容的內部意想不到的標籤,例如:
<h3><br/><strong>title</strong></h3>

如何刪除空的HTML標籤就像從一個字符串<p><br></p><h3><br /><h3>

+1

這真的不清楚你在問什麼 – ItamarG3

回答

1

您可以隨時嘗試在元素上使用jsoup的.text()方法來獲取文本,然後將文本放入h3中。

0

要替換空元素,您可以使用CSS選擇器:empty。在循環中這樣做,因爲包含空元素的元素不被視爲空,但會在下一次迭代中被刪除。

要使用<h2><strong>...</strong><h2>更換<h3><strong>...</strong><h3>標籤和刪除<h3>標籤內的其他標籤,使用replaceWith

示例代碼

Document doc = Jsoup.connect("url").get(); 

// clean up empty elements 
while(!doc.select(":empty").isEmpty()){ 
    doc.select(":empty").remove(); 
} 

//replace h3 with h2 
doc.select("h3 > strong").forEach(strong -> { 
    strong.parent().replaceWith(new Element(Tag.valueOf("h2"), "").html("<strong>" + strong.text() + "</strong>")); 
}); 
+0

我試圖用我自己碼 – ramboeistblast