Jsoup parseBodyFragment排除了样式属性为display:none的元素

时间:2014-06-24 22:56:53

标签: java jsoup

我使用Jsoup的parseBodyFragment方法将Java字符串转换为Jsoup Document对象:

String trElem  =  "<tr>"
               +  "  <td data-column-name='ID' style='display:none;'></td>"
               +  "  <td data-column-name='Name'><input type='text' value='Jones'></td>"
               +  "</tr>" ;
Document doc = Jsoup.parseBodyFragment(trElem) ;
System.out.println ( "\nJsoup doc is " + doc + "\n" ) ;

然而,第一个&lt; td&gt; element被排除在Document返回的parseBodyFragment对象之外,如下所示(我System.out.println的输出):

<html>
  <head></head>
  <body>
    <input type="text" value="Jones" />
  </body>
</html>

我的问题:如何在parseBodyFragment返回的对象中包含所有元素(包括display:none和没有的元素?)

1 个答案:

答案 0 :(得分:1)

Jsoup正试图规范化解析的html。在这种情况下,它没有看到任何标签,因此它完全忽略了&lt; tr&gt;和&lt; td&gt;标签。有两个选项

  1. 添加&lt; table&gt;&lt; / table&gt;标签

  2. 使用此Document doc = Jsoup.parse(trElem, "", Parser.xmlParser());

相关问题