Как прочитать / извлечь файл XML из URL с помощью Java? - PullRequest
1 голос
/ 11 января 2011

Я хочу прочитать XML-файл с URL-адреса и хочу его проанализировать.Как я могу сделать это в Java ??

Ответы [ 5 ]

3 голосов
/ 11 января 2011

Чтение с URL-адреса отличается от любого другого источника ввода.Существует несколько различных инструментов Java для разбора XML.

2 голосов
/ 11 января 2011

Вы можете использовать Xstream, это поддерживает.

URL url = new URL("yoururl");
BufferedReader in = new BufferedReader(
                new InputStreamReader(
                url.openStream()));



xSteamObj.fromXML(in);//return parsed object
1 голос
/ 11 января 2011

Я использую JDOM:

import org.jdom.Document;
import org.jdom.Element;
import org.jdom.input.*;

StringBuilder responseBuilder = new StringBuilder();
try {
 // Create a URLConnection object for a URL
 URL url = new URL( "http://127.0.0.1" );
 URLConnection conn = url.openConnection();
 HttpURLConnection httpConn;

 httpConn = (HttpURLConnection)conn;
 BufferedReader rd = new BufferedReader(new InputStreamReader(httpConn.getInputStream()));
 String line;

 while ((line = rd.readLine()) != null)
 {
  responseBuilder.append(line + '\n');
 }
}
catch(Exception e){
 System.out.println(e);
}

SAXBuilder sb = new SAXBuilder();
Document d = null;
try{
    d = sb.build( new StringReader( responseBuilder.toString() ) );
}catch(Exception e){
    System.out.println(e);
}

Конечно, вы можете вырезать весь прочитанный URL-адрес строки, а затем добавить в строку средство чтения строк, но я вырезал / вставил из двух разных областей. Так было проще.

1 голос
/ 11 января 2011

Два шага:

  1. Получить байты с сервера.
  2. Создать для него подходящий источник XML, возможно, даже Transformer.

Соедините их и получите, например, DOM для дальнейшей обработки.

0 голосов
/ 11 января 2011

Это хороший кандидат для использования потокового парсера: StAX StAX был разработан для последовательной работы с потоками XML; по сравнению с DOM API, которым нужна целая модель документа за один раз. StAX также предполагает, что содержимое является динамическим, а природа XML на самом деле неизвестна. Варианты использования StAX также включают конвейер обработки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...