2010-02-25 15 views
5

Mam usługę, która pobiera dostarczony przez użytkownika tekst sformatowany (może mieć znaczniki HTML) i zapisuje go w bazie danych. Te dane zostaną wykorzystane przez inną aplikację. Czasami jednak dane dostarczone przez użytkownika zawierają brakujące znaczniki HTML i błędne znaczniki zamykające. Chcę zweryfikować, czy użytkownik podał dane jest prawidłowy HTML, czy nie i w zależności od tego chcę ostrzec użytkownika.Czy istnieją jakieś biblioteki Java do sprawdzania poprawności dostarczonego przez użytkownika kodu HTML po stronie serwera?

Czy istnieją biblioteki Java do sprawdzania poprawności HTML?

Odpowiedz

2

Możesz wypróbować numer JTidy, ale jest on zbyt wolny, aby umożliwić proste czyszczenie HTML.

Jeśli chcesz tylko proces HTML można spróbować NekoHTML, jest lekki i szybki

+0

jedyną rzeczą do rozważenia jest to, że nie powinno się przedstawić użytkownikom ze wszystkich rodzajów komunikatów o błędach walidacji. Twoi użytkownicy są prawdopodobnie przeciętnymi Joe, nie zrozumieją ich. –

+0

Mam zamiar spróbować obu i zobaczyć, który z nich działa dla mnie. Dziękuję Ci! – chetu

3

Możesz spróbować JTidy.

JTidy jest port Java HTML Tidy, a składni HTML sprawdzania i ładnej drukarki.

0

Istnieje wspaniała rzecz o nazwie NekoHTML, która jest cienkim opakowaniem w parserze Apache Xerces, który włącza odzyskiwanie/korektę błędów. Nie sprawdza się tak dobrze, jak poprawność błędów, więc możesz przetworzyć wynik jako XML, tj. Uruchomić go przez XPaths lub XSLT. Przez kilka miesięcy działało bezbłędnie na całkowicie dowolny kod HTML z witryn stron trzecich.

0

Można użyć Jsoup z README projektu

Oto przykład:

import org.jsoup.Jsoup; 
import org.jsoup.nodes.Document; 
... 
String markup = "<body><head>..."; 
Jsoup.isValid(markup, null); 

Zamiast null można przekazać Whitelist? obiekt jako drugi parametr metody isValid.

Plus, można łatwo install this library użyciem Gradle

Powiązane problemy