如何使用Java和JavaScript访问和解析XML文件
新到开发现场,如果我碰巧没有任何意义,请忽略我的无知 我试图访问位于EJB目录中的xml文件,该文件必须留在那里,我需要将其解析为javascript可访问对象(最好是JSON),以便使用javascript/Angular动态操作它 使用JBOSS,文件的位置如下 /FOO ejb/src/main/resources/Config.xml,显然无法通过web访问,因为它不位于web服务器根目录下 Java是后端,我似乎找不到任何其他方法来访问此文件,以便将其提供给前端 我正朝着使用EJB中的服务访问文件、解析文件、然后使用REST服务将对象提供给前端的方向前进……或者编写JSP读取文件、解析文件等等。。。。 还有其他更好的解决方案吗如何使用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中的
谢谢大家抽出时间 我认为您想要做的事情是不可能实现的,因为这意味着您将使用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(系统输出);
}