Ошибка при формировании RSS запроса (XML формат)

 
0
 
Java
ava
Nymph666 | 20.02.2013, 15:04
Всем доброго времени!
Опишу работу программы: пользователь вводит в edit некоторое слово и нажимает на кнопку "Искать".
В результате создается rss запрос в поисковике google и выводится результат в другой форме.
Однако, сейчас столкнулась с такой ошибкой:
The markup in the document preceding the root element must be well-formed.

Функция получения документа:

private Document getGoogleRssDocument(String word) throws IOException, ParserConfigurationException, SAXException {

        String url = getRequestUrl(word);

        HttpClient client = new HttpClient();
        GetMethod get = new GetMethod(url);
        try {

            int resultCode = client.executeMethod(get);

            if (resultCode == HttpStatus.SC_OK) {
                InputStream in = get.getResponseBodyAsStream();

                DocumentBuilder builder = builderFactory.newDocumentBuilder();
                return builder.parse(in);
            } else {
                throw new IOException("HTTP Communication problem, response code: "+resultCode);
            }

        } finally {

           get.releaseConnection();
        }
    }


Затем результат функции используется в другой функции, которая получает html -код

private String getGoogleHtml(Document rss) {

        Element item = (Element)rss.getElementsByTagName("item").item(0);
        Element desc = (Element)item.getElementsByTagName("description").item(0);
        return desc.getFirstChild().getNodeValue();
    }



Судя по ошибке - неправильная структура файла.

Возможно не хватает <?xml version="1.0" encoding="UTF-8"?>

Вот только не пойму как его туда добавить.
Ответы (1)
ava
Nymph666 | 21.02.2013, 08:28 #
Ошибка 100% в этой строчке, так как DocumentBuilder рассматривает inputStream как xml-документ

return builder.parse(in);
Зарегистрируйтесь или войдите, чтобы написать.
Фирма дня
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Участники
advanced
Отправить