JAXP analizza in modo nativo l'HTML?

2

Quindi, faccio un rapido test case in Java 7 per prendere un paio di elementi dagli URI casuali, e vedere se il materiale di analisi interno farà quello che mi serve.

Ecco l'impostazione di base (con gestione delle eccezioni, ecc.):

DocumentBuilderFactory dbfac = DocumentBuilderFactory.newInstance();
DocumentBuilder dbuild = dbfac.newDocumentBuilder();
Document doc = dbuild.parse("uri-goes-here");

Con nessun gestore di errori installato, il metodo di analisi genera eccezioni su errori di analisi fatali.

Quando si ottiene la pagina standard dell'indice di directory Apache 2.2 da un server locale: una SAXParseException con il messaggio Sono richiesti spazi bianchi tra publicId e systemId. Il doctype mi sembra a posto, spazi bianchi e tutto.

Quando si preleva una pagina da un sito generato da Drupal 7, non finisce mai. Il metodo parse sembra bloccarsi. Nessuna eccezione generata, mai più restituita.

Quando si ottiene link , una SAXParseException con il messaggio Il tipo di elemento "meta" deve essere terminato dal tag finale corrispondente "< / meta >".

Quindi sembrerebbe che l'impostazione predefinita che ho usato qui non gestisca l'HTML, solo XML scritto rigorosamente.

La mia domanda è: JAXP può essere usato immediatamente da openJDK 7 per analizzare l'HTML dall'ambiente naturale (senza gesti insani), o sto meglio cercando un parser HTML 5?

PS questo è per qualcosa che potrebbe non essere open source, quindi anche la licenza è un problema: (

    
posta ikmac 03.10.2012 - 04:02
fonte

1 risposta

0

Questa overflow dello stack answer ha un paio di soluzioni. Apparentemente JAXP funziona solo su XML ben formato. Dovresti convertire l'HTML in XHTML prima di sottoporlo al parser standard di JAXP.

    
risposta data 03.10.2012 - 04:09
fonte

Leggi altre domande sui tag