簡體   English   中英

如何使用Java從URL讀取/獲取XML文件?

[英]how to read/fetch the XML file from an URL using Java?

我想從URL讀取XML文件,然后解析它。 如何在Java中執行此操作?

從URL讀取與任何其他輸入源不同。 有幾種用於XML解析的Java工具。

您可以使用Xstream支持此功能。

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



xSteamObj.fromXML(in);//return parsed object

兩步:

  1. 從服務器獲取字節。
  2. 為此創建一個合適的XML源,甚至可能是一個Transformer。

連接兩者並獲得例如DOM進行進一步處理。

我使用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剪切為字符串,然后將字符串讀取器放在字符串上,但是Ive從兩個不同的區域進行了剪切/粘貼。 所以這更容易。

這是使用Streaming解析器的一個很好的候選者: StAX StAX被設計為串行處理XML流。 相比之下,需要一次性完成整個文檔模型的DOM API相比。 StAX還假定內容是動態的,並且XML的本質並未真正為人所知。 StAX用例也包括處理管道。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM