我对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创建一个干净的解析。它处理:未闭合标签(e.g. <p>Lorem <p>Ipsum parses to <p>Lorem</p> <p>Ipsum</p>)
隐式标记(e.g. 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((,这样它就可以直接读取字符串而不格式化它。