如何使用Java和JavaScript访问和解析XML文件

如何使用Java和JavaScript访问和解析XML文件,java,javascript,xml,angularjs,jboss,Java,Javascript,Xml,Angularjs,Jboss,新到开发现场,如果我碰巧没有任何意义,请忽略我的无知 我试图访问位于EJB目录中的xml文件,该文件必须留在那里,我需要将其解析为javascript可访问对象(最好是JSON),以便使用javascript/Angular动态操作它 使用JBOSS,文件的位置如下 /FOO ejb/src/main/resources/Config.xml,显然无法通过web访问,因为它不位于web服务器根目录下 Java是后端,我似乎找不到任何其他方法来访问此文件,以便将其提供给前端 我正朝着使用EJB中的

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

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

使用JBOSS,文件的位置如下

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

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

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


谢谢大家抽出时间

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

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

过去,我在Servlet中使用ApacheAbdera解析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);
}
试试看{
PrintWriter结果=response.getWriter();
//创建Abdera对象和客户端以处理请求。
Abdera abderaObj=新的Abdera();
AbderaClient客户端=新的AbderaClient(abderaObj);
AbderClient.registerTrustManager();//用于SSL连接。
//通过AbderaClient发送ATOM提要的HTTP请求。
ClientResponse resp=client.get(“http://url/to/your/feed" );
//如果回答是好的。。。
if(resp.getType()==ResponseType.SUCCESS){
//我们把文件作为提要
Document doc=resp.getDocument();
//创建一个JSON编写器来转换ATOM提要
Writer json=abderaObj.getWriterFactory().getWriter(“json”);
//将(XML)ATOM提要转换为JSON对象
doc.writeTo(json,结果);
} 
}捕获(例外情况除外){
例如printStackTrace(系统输出);
}