簡體   English   中英

轉換 html 行時 JSOUP 缺少標記

[英]JSOUP missing tag when converting html row

我有 jsoup 的問題,我想獲取一行數據,稍后我將把該行插入到另一個 html 文檔中。 但是當我檢查時發現沒有和標簽。 我該如何解決

String htmlcontent = "<tr><td colspan=\"2\"><div class=\"content-wrapper\"><p><strong><span class=\"CLASS 1 CLASS 2 CLASS 3\">123</span></strong><br /><strong>DATA 1</strong></p></td><td></td><td></td><td></td><td></td></tr>";


Document docnewinput = Jsoup.parse(htmlcontent, "UTF-8");

[<html>
 <head></head>
 <body>
  <div class="content-wrapper">
   <p><strong><span class="CLASS 1 CLASS 2 CLASS 3">123</span></strong><br><strong>DATA 1</strong></p>
  </div>
 </body>
</html>]

您有一個要解析的正文片段 HTML(例如,一個包含幾個 p 標簽的 div;與完整的 HTML 文檔相反)。

使用Jsoup.parseBodyFragment(String html)方法。

String html = "<table><tr><td colspan=\"2\"><div class=\"content-wrapper\"><p><strong><span class=\"CLASS 1 CLASS 2 CLASS 3\">123</span></strong><br /><strong>DATA 1</strong></p></td><td></td><td></td><td></td><td></td></tr></table>";
Document doc = Jsoup.parseBodyFragment(html);

parseBodyFragment方法創建一個空的 shell 文檔,並將解析后的 HTML 插入到 body 元素中。 如果您使用普通的Jsoup.parse(String html)方法,通常會得到相同的結果,但將輸入顯式視為正文片段可確保將用戶提供的任何 bozo HTML 解析為正文元素。

解析器將盡一切努力從您提供的 HTML 創建一個干凈的解析,無論 HTML 是否格式正確。 它處理:未閉合標簽(eg <p>Lorem <p>Ipsum parses to <p>Lorem</p> <p>Ipsum</p>)隱式標簽(eg a naked <td>Table data</td> is wrapped into a <table><tr><td>...)可靠地創建文檔結構(包含頭部和正文的 html,並且頭部中只有適當的元素)

編輯:

通過使用 Jsoup.parse():

String html = "<table><tr><td colspan=\"2\"><div class=\"content-wrapper\"><p><strong><span class=\"CLASS 1 CLASS 2 CLASS 3\">123</span></strong><br /><strong>DATA 1</strong></p></td><td></td><td></td><td></td><td></td></tr></table>";
Document doc = Jsoup.parse(html);

工作演示: https://try.jsoup.org/~EdJSrHl_biDcQkyhL2BLH5ZNnck

需要使用 xmlParser() 以便它只讀取字符串而不格式化它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM