[JSOUP], почему 1.6.x удаляют теги TD, Проблемы с обновлением до 1.6.x - PullRequest
0 голосов
/ 22 августа 2011
System.out.println(Jsoup.parseBodyFragment("<td>123</td>").html());

jsoup 1.5.2 ВЫХОД:

<html>
 <head></head>
 <body>
  <table>
   <tbody>
    <tr>
     <td>123</td>
    </tr>
   </tbody>
  </table>
 </body>
</html>

jsoup 1.6.x (1.6.0 и 1.6.1) ВЫХОД:

<html>
 <head></head>
 <body>
  123
 </body>
</html>

почему 1.6.x удаляют TD теги?

как я могу получить выход jsoup 1.5.x в 1.6.x?

1 Ответ

2 голосов
/ 23 августа 2011

В jsoup 1.6 я переписал HTML-парсер для реализации whatwg HTML-спецификации , которая соответствует тому, как браузеры в настоящее время анализируют HTML.

Эффект здесь заключается в том, что в 1,5 достаточно <td>, чтобы автоматически оживить <table>; однако браузеры на самом деле не работают таким образом, поэтому в версии 1.6 вам необходимо обновить ввод HTML, чтобы ввести тег <table>.

Например:

System.out.println(
  Jsoup.parseBodyFragment("<table><td>123</td></table>").html());

даст:

<html>
 <head></head>
 <body>
  <table>
   <tbody>
    <tr>
     <td>123</td>
    </tr>
   </tbody>
  </table>
 </body>
</html>

Обратите внимание, что <table><td> нормализуется до <table><tbody><tr><td>....

Надеюсь, это поможет!

...