Próbuję analizować dokument HTML z doctype deklarowanej używać z DTD przejściowy następująco:DTD Błąd podczas parsowania pobierz dokument XHTML w Xóm
< DOCTYPE html PUBLIC „- // W3C // DTD XHTML 1.0 Transitional // EN” "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >
Kiedy zrobić Builder.build na dokumencie, pojawia się następujący wyjątek:
java.io.IOException: Server returned HTTP response code: 503 for URL: http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1305)
at org.apache.xerces.impl.XMLEntityManager.setupCurrentEntity(Unknown Source)
at org.apache.xerces.impl.XMLEntityManager.startEntity(Unknown Source)
at org.apache.xerces.impl.XMLEntityManager.startDTDEntity(Unknown Source)
at org.apache.xerces.impl.XMLDTDScannerImpl.setInputSource(Unknown Source)
at org.apache.xerces.impl.XMLDocumentScannerImpl$DTDDispatcher.dispatch(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at nu.xom.Builder.build(Builder.java:1127)
at nu.xom.Builder.build(Builder.java:1019)
Jeśli usunąć deklaracja typu dokumentu, parsuje dobrze. Mogę pomyślnie pobrać dtd z mojej przeglądarki, która mówi mi, że adres URL jest ważny. Nie chcę usuwać deklaracji typu dokumentu. Czy istnieje sposób, aby powiedzieć konstruktorowi, aby nie pobierał pakietu dtd, ani nie dostarczał go pod za pomocą alternatywnego dtd?
Czy parsowania HTML „na dziko” czy też tworzenia/kontrolę nad stronami jesteś parsowania? – lucas
Mam kontrolę nad plikiem HTML, który parsuję, więc przynajmniej mogę usunąć deklarację doctype. Ale staram się trzymać dobrych praktyk i zachować deklarację doctype. – Bala