2010-02-25 10 views
5

Ho un servizio che accetta il testo in testo fornito dall'utente (può contenere tag HTML) e lo salva nel database. Questi dati vengono utilizzati da qualche altra applicazione. Ma a volte i dati forniti dall'utente non hanno tag HTML e tag di chiusura sbagliati. Voglio verificare se i dati forniti dall'utente sono HTML validi o meno e, a seconda di ciò, desidero avvisare l'utente.Esistono librerie java per la convalida del codice HTML fornito dall'utente, sul lato server?

Esistono librerie java per eseguire la convalida HTML?

risposta

2

Si può provare JTidy, ma è troppo lento per la semplice pulizia HTML.

Se si desidera solo HTML processo si può provare NekoHTML, è leggero e veloce

+0

L'unica cosa da considerare è che non si dovrebbe presentare gli utenti con tutti i tipi di messaggi di errore di convalida. I tuoi utenti sono probabilmente Joe mediocri, non li capiranno. –

+0

Ho intenzione di provare entrambi e vedere quale funziona per me. Grazie! – chetu

3

Si può provare JTidy.

JTidy è un porto di Java HTML Tidy, un correttore di sintassi HTML e abbastanza stampante.

0

C'è una cosa fantastica chiamata NekoHTML, che è solo un involucro sottile sul parser Apache Xerces che attiva il ripristino/correzione degli errori. Non convalida tanto quanto la correzione degli errori, quindi è possibile elaborare il risultato come XML, cioè eseguirlo tramite XPaths o XSLT. Ha funzionato in modo impeccabile per me per diversi mesi su HTML completamente arbitrario da siti di terze parti.

0

È possibile utilizzare Jsoup, dal progetto README

Ecco un esempio:

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

Invece di null, è possibile passare un oggetto Whitelist? come secondo parametro al metodo isValid.

Inoltre, si può facilmente install this library usando Gradle

Problemi correlati