Я применяю xslt к файлу HTML (уже отфильтрованному и упорядоченному, чтобы его можно было анализировать как XML).Ошибка при доступе к w3.org при применении XSLT
Мой код выглядит следующим образом:
TransformerFactory transformerFactory = TransformerFactory.newInstance();
this.xslt = transformerFactory.newTransformer(xsltSource);
xslt.transform(sanitizedXHTML, result);
Однако я получаю сообщение об ошибке для каждого DOCTYPE нашел, как это:
ERROR: 'Server returned HTTP response code: 503 for URL: http://www.w3.org/TR/html4/loose.dtd '
У меня нет проблем с доступом к DTDs из моего браузера.
У меня мало контроля над анализируемым HTML-кодом, и я не могу разорвать DOCTYPE, поскольку мне нужны они для сущностей.
Любая помощь приветствуется.
EDIT:
Я пытался отключить проверку DTD так:
private Source getSource(StreamSource sanitizedXHTML) throws ParsingException {
SAXParserFactory spf = SAXParserFactory.newInstance();
spf.setNamespaceAware(false);
spf.setValidating(false); // Turn off validation
XMLReader rdr;
try {
rdr = spf.newSAXParser().getXMLReader();
} catch (SAXException e) {
throw new ParsingException(e);
} catch (ParserConfigurationException e) {
throw new ParsingException(e);
}
InputSource inputSrc = new InputSource(sanitizedXHTML.getInputStream());
return new SAXSource(rdr, inputSrc);
}
, а затем просто назвав его ...
Source source = getSource(sanitizedXHTML);
xslt.transform(source, result);
Ошибка сохраняется.
EDIT 2:
Написал разрешения сущности, и есть HTML 4.01 Transitional DTD на моем локальном диске. Тем не менее, я получаю эту ошибку прямо сейчас:
ERROR: 'The declaration for the entity "HTML.Version" must end with '>'.'
ОТД является как, скачанный с w3.org
Спасибо за совет, но проблема не устранена. Я только что отредактировал, как я пытался отключить проверку DTD. – Johnco
Ваше редактирование сделало это! – Johnco