У меня есть эта функция:
private Node getDOM(String str) throws SearchEngineException {
DOMResult result = new DOMResult();
try {
XMLReader reader = new Parser();
reader.setFeature(Parser.namespacesFeature, false);
reader.setFeature(Parser.namespacePrefixesFeature, false);
Transformer transformer = TransformerFactory.newInstance().newTransformer();
transformer.transform(new SAXSource(reader,new InputSource(new StringReader(str))), result);
} catch (Exception ex) {
throw new SearchEngineException("NukatSearchEngine.getDom: " + ex.getMessage());
}
return result.getNode();
}
Требуется строка, содержащая html-документ, отправленный http-сервером после запроса POST, но не удается его правильно проанализировать - я получаю всего четыре узла из всего документа. Сама строка выглядит хорошо - если я распечатываю ее и копирую в текстовый документ, я вижу ожидаемую страницу.
Когда я использую перегруженную версию вышеуказанного метода:
private Node getDOM(URL url) throws SearchEngineException {
DOMResult result = new DOMResult();
try {
XMLReader reader = new Parser();
reader.setFeature(Parser.namespacesFeature, false);
reader.setFeature(Parser.namespacePrefixesFeature, false);
Transformer transformer = TransformerFactory.newInstance().newTransformer();
transformer.transform(new SAXSource(reader, new InputSource(url.openStream())), result);
} catch (Exception ex) {
throw new SearchEngineException("NukatSearchEngine.getDom: " + ex.getMessage());
}
return result.getNode();
}
тогда все работает просто отлично - я получаю правильное дерево DOM, но мне нужно каким-то образом получить ответ POST с сервера.
Сохранение строки в файле и чтение ее обратно не работает - все равно получаются те же результаты.
В чем может быть проблема?