Nay*_*ish 5 java xml xslt servlets
我试图动态地在Java中创建一个XML文件来显示时间表.我为我的XML文件创建了一个DTD,我有一个我想用来转换XML的XSL文件.我不确切知道如何继续.
我到目前为止所尝试的是点击一个按钮,调用一个Servlet,它生成XML文件内容的字符串(将XML的动态部分插入到String中.我现在有一个包含XML内容的String我现在想使用我服务器上的XSL文件转换XML文件,并在调用Servlet的页面中显示结果(通过AJAX执行此操作).
我不确定我是否在这个方向,也许我甚至不应该从一开始就以String形式创建XML代码.所以我的问题是,我如何从这里继续?如何使用XSL文件转换XML字符串,并将其作为对AJAX调用的响应发送,以便将生成的代码植入页面?或者,如果这不是这样做的,那么如何以不同的方式创建动态XML文件以产生相同的结果?
您可以使用JAXP.它是标准Java SE API的一部分.
StringReader xmlInput = new StringReader(xmlStringWhichYouHaveCreated);
InputStream xslInput = getServletContext().getResourceAsStream("file.xsl"); // Or wherever it is. As long as you've it as an InputStream, it's fine.
Source xmlSource = new StreamSource(xmlInput);
Source xslSource = new StreamSource(xslInput);
Result xmlResult = new StreamResult(response.getOutputStream()); // XML result will be written to HTTP response.
Transformer transformer = TransformerFactory.newInstance().newTransformer(xslSource);
transformer.transform(xmlSource, xmlResult);
Run Code Online (Sandbox Code Playgroud)