繁体   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