Как загрузить исходный код веб-страницы, а затем вставить его в SAX-парсер в целом? - PullRequest
0 голосов
/ 12 февраля 2010

Я просто хочу скачать источник в виде строки. Затем вставьте этот XML (который в настоящее время является строкой) в парсер.

Ответы [ 2 ]

0 голосов
/ 12 февраля 2010

Использование парсера SAX подразумевает, что у вас есть org.xml.sax.ContentHandler, который может принимать обратные вызовы от вашего парсера. Интересно, что это за ContentHandler и как вы собираетесь использовать обратные вызовы.

Вы можете обернуть StringReader вокруг вашей строки и передать его в нулевое преобразование, которое преобразуется между StreamSource и SAXResult, например так:

void parseStringWithSAX (String xmlString, ContentHandler handler)
    throws TransformerConfigurationException, TransformerException  {
    Source source = new StreamSource (new StringReader (xmlString));
    Result result = new SAXResult (handler);
    TransformerFactory tf = TransformerFactory.newInstance();
    Transformer t = tf.newTransformer();
    t.transform(source, result);
}

Ари.

0 голосов
/ 12 февраля 2010

Возможно, вы захотите использовать Apache Jakarta Commons HttpClient для установления соединения, затем используйте синтаксический анализатор, такой как Xerces , JAXP или что вам нужно прочитать входной поток и его разбор.

На стороне HttpClient вы обычно создаете метод (например, GetMethod), обслуживаете его экземпляром HttpClient, а затем запрашивает тело ответа метода. Этот учебник должен помочь вам.

Со стороны синтаксического анализатора вы, возможно, захотите ознакомиться с различиями в синтаксических анализаторах SAX и DOM, так как они немного диктуют способ их использования и имеют немного отличающиеся преимущества в зависимости от размера данных, ограничений памяти и типы запросов, которые вы хотите сделать к документу.

...