jTidy ничего не возвращает после очистки HTML

Я столкнулся с очень неприятной проблемой при использовании jTidy (на Android). Я обнаружил, что jTidy работает с каждым HTML-документом, с которым я его тестировал, за исключением следующего:

    <!DOCTYPE html>
      <html lang="en">
       <head>
        <meta charset="utf-8" />

         <!-- Always force latest IE rendering engine & Chrome Frame 
              Remove this if you use the .htaccess -->
         <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />

         <title>templates</title>
         <meta name="description" content="" />
         <meta name="author" content="" />

         <meta name="viewport" content="width=device-width; initial-scale=1.0" />

         <!-- Replace favicon.ico & apple-touch-icon.png in the root of your domain and delete these references -->
      <link rel="shortcut icon" href="/favicon.ico" />
      <link rel="apple-touch-icon" href="/apple-touch-icon.png" />
   </head>

 <body>
   <div>
     <header>
       <h1>Page Heading</h1>
     </header>
     <nav>
       <p><a href="/">Home</a></p>
       <p><a href="/contact">Contact</a></p>
     </nav>

     <div>

     </div>

     <footer>
      <p>&copy; Copyright</p>
     </footer>
   </div>
 </body>
 </html>

Но после его очистки jTidy ничего не возвращает (например, если строка, содержащая Tidied HTML, называется результатом, result.equals (" ") == true)

Я заметил кое-что очень интересное: если я удалю все, что есть в основной части HTML, jTidy будет работать отлично. Что-то в jTidy не нравится?

Вот код Java, который я использую:

 public String tidy(String sourceHTML) {
   StringReader reader = new StringReader(sourceHTML);

   ByteArrayOutputStream baos = new ByteArrayOutputStream();
   Tidy tidy = new Tidy();
   tidy.setMakeClean(true);
   tidy.setQuiet(false);
   tidy.setIndentContent(true);
   tidy.setSmartIndent(true);

   tidy.parse(reader, baos);

   try {
     return baos.toString(mEncoding);
   } catch (UnsupportedEncodingException e) {
     return null;
   }
 }

Что-то не так с моей Java? Это ошибка jTidy? Есть ли способ заставить jTidy не делать этого? (Я не могу изменить HTML). Если это абсолютно невозможно исправить, есть ли другие хорошие HTML Tidiers? Спасибо большое!

5
задан Dan Hardiker 16 January 2012 в 20:27
поделиться