JSOUP Element.html(" test")忽略标签

时间:2016-06-15 11:11:14

标签: java parsing jsoup

我在一个基于jsoup的html模板引擎上工作。 如果元素不在表中,则JSOUP忽略th和td标志;

为了解决这个问题,我将解析器更改为:

    final Document docToWrite = Jsoup.parse(docToRead.outerHtml(),"", Parser.xmlParser());

但我没有找到任何解决方案来填充包含td或th的html元素:

    element.html("<th>test</th>");

仅返回测试,因为JSOUP通过删除未使用的标签来清理html

我该如何解决这个问题?

谢谢

1 个答案:

答案 0 :(得分:0)

如果你的元素是'th',那么调用:

element.html("<th>test</th>") // th.innerHTML = "<th>test</th>"

应该生成脏的html:

<th><th>test</th></th>

由JSoup正确清除:

<th>test</th> // th.innerHTML == "test"

使用innerHTML填充元素==“&lt; th&gt; test&lt; / th&gt;”你的元素必须是&lt; tr&gt;标签

// Given
String s = "<th>test</th>";
assert element.tag() == "tr";

// When
element.html(s);

// Then
assert element.html().equals(s);