【问题标题】:How to access and parse XML file using Java and JavaScript如何使用 Java 和 JavaScript 访问和解析 XML 文件
【发布时间】:2014-02-18 22:18:50
【问题描述】:

新手开发场景,如果我碰巧没有任何意义,请忽略我的无知......

我正在尝试访问位于我的 EJB 目录中的 xml 文件,该文件必须保留在那里,我需要将其解析为 javascript 可访问对象,最好是 JSON,以使用 Javascript / Angular 动态操作它......

使用 JBOSS,文件的位置类似于

/FOO-ejb/src/main/resources/Config.xml,显然无法通过网络访问,因为它不在网络服务器根目录下,

Java 是后端,我似乎找不到任何其他方法来访问此文件以将其提供给前端,

我正朝着使用 EJB 中的服务访问文件、解析文件、然后使用 REST 服务将对象提供给前端的方向前进……或者编写一个 JSP 来读入文件,解析它等等...... 还有其他更好的解决方案吗?

感谢大家的宝贵时间!

【问题讨论】:

    标签: java javascript xml angularjs jboss


    【解决方案1】:

    我认为您想要做的事情是无法实现的,因为这意味着您将使用 Javascript 来访问文件系统,尽管 HTML5 提供了一些可以工作但不能访问文件系统中的任何文件的文件 API,但这是不可能的.

    所以我会说你前进的方向是最合适的,而且可能更容易,因为即使你找到了一种在 JavaScript 中实现它的方法,它也会依赖于浏览器或一些奇怪的解决方法,可能会被打破未来浏览器的版本。

    我过去在 Servlet 中使用 Apache Abdera 来解析 XML RSS 提要并将其转换为 JSON。 Abdera 擅长这一点,对我来说非常完美。获取 JSON 对象后,我只需将其发送到响应,并在客户端使用 AJAX 调用 servlet 来获取 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);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-07-21
      • 2012-11-28
      • 1970-01-01
      • 1970-01-01
      • 2013-02-20
      • 2018-01-04
      • 1970-01-01
      相关资源
      最近更新 更多