簡體   English   中英

如何使用Java和JavaScript訪問和解析XML文件

[英]How to access and parse XML file using Java and JavaScript

對於開發領域來說是新手,如果我碰巧沒有任何意義,請忽略我的無知……

我正在嘗試訪問位於我的EJB目錄中的XML文件,該文件必須留在該目錄中,我需要將其解析為javascript可訪問對象(最好是JSON),以使用Javascript / Angular動態操作它。

使用JBOSS,文件的位置類似於

/FOO-ejb/src/main/resources/Config.xml,顯然它不能通過Web訪問,因為它不位於Web服務器的根目錄下,

Java是后端,我似乎找不到其他方法來訪問此文件以將其提供給前端,

我正朝着在EJB中使用服務訪問文件,解析文件,然后使用REST服務將對象提供給前端的方向發展。...或編寫JSP來讀取文件,解析等等。。。還有其他更好的解決方案嗎?

謝謝大家的寶貴時間!

我認為您想做的事情是無法實現的,因為這意味着您將使用Javascript訪問文件系統,盡管HTML5提供了一些可以工作的File API,但無法訪問文件系統中的任何文件,但這是不可能的。

因此,我想說的是,最合適的方向也許是更容易的方向,因為即使您找到了使用JavaScript的方法,也可能會依賴於瀏覽器,或者有些怪異的解決方法,可能會在將來的瀏覽器版本中打破。

過去,我曾在Servlet中使用Apache Abdera解析XML RSS feed並將其轉換為JSON。 Abdera擅長這一點,並且對我來說非常完美。 獲取JSON對象后,我只需要將其發送到響應,然后在客戶端使用對Servlet的AJAX調用即可獲取JSON對象。

代碼是這樣的:

try {

    PrintWriter result = response.getWriter();

    // Creates Abdera object and client to process the request.
    Abdera abderaObj = new Abdera();
    AbderaClient client = new AbderaClient(abderaObj);

  AbderaClient.registerTrustManager(); // For SSL connections.

    // Sent the HTTP request of the ATOM Feed through AbderaClient.
    ClientResponse resp = client.get( "http://url/to/your/feed" );

    // if the response was OK...
    if (resp.getType() == ResponseType.SUCCESS) {
        // We get the document as a Feed
        Document<Feed> doc = resp.getDocument();

        // Creates a JSON writer to convert the ATOM Feed
        Writer json = abderaObj.getWriterFactory().getWriter("json");

        // Converts the (XML) ATOM Feed into JSON object 
        doc.writeTo(json, result);
    } 

} catch (Exception ex) {
    ex.printStackTrace(System.out);
}

暫無
暫無

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

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