Java 获取一个XML文件和一个XSL文件,并从中生成一个HTML字符串?
我有两个字符串,一个是使用JavaDOM接口构建的XML字符串,另一个是要绑定到该XML文件的外部XSL文件。我尝试使用Java转换方法,但运气不佳(这意味着我似乎无法在web上找到任何解决方案) 如何获取XML文件和XSL文件并从中生成HTML字符串? 我试图做的是将一个XML页面插入到我的JSP页面中 只是澄清一下:这是在servlet中完成的,而不是在JavaScript中 更多信息: 我在运行时以字符串的形式创建XML,我得到的XSL文件存储在服务器上,我要做的是当用户单击站点上的某个链接时,向用户显示XSL文件修改的XML,我想将其嵌入现有JSP页面中(以保持站点的标准外观) 到目前为止,我得到的是:Java 获取一个XML文件和一个XSL文件,并从中生成一个HTML字符串?,java,html,xml,xslt,servlets,Java,Html,Xml,Xslt,Servlets,我有两个字符串,一个是使用JavaDOM接口构建的XML字符串,另一个是要绑定到该XML文件的外部XSL文件。我尝试使用Java转换方法,但运气不佳(这意味着我似乎无法在web上找到任何解决方案) 如何获取XML文件和XSL文件并从中生成HTML字符串? 我试图做的是将一个XML页面插入到我的JSP页面中 只是澄清一下:这是在servlet中完成的,而不是在JavaScript中 更多信息: 我在运行时以字符串的形式创建XML,我得到的XSL文件存储在服务器上,我要做的是当用户单击站点上的某个链
String convertedXML = new String();
TransformerFactory factory1 =
TransformerFactory.newInstance();
Source xsl = new StreamSource("my.xsl");
Result result11 = null;
try {
Templates template = factory1.newTemplates(xsl);
Transformer transformer1 = template.newTransformer();
Source xml = new StreamSource(xmlString);
result11 = new StreamResult(convertedXML);
transformer1.transform(xml, result11);
} catch(Exception e) {
System.out.println("Not Good");
}
catch前的最后一行抛出下一个错误:
javax.xml.transform.TransformerException:java.io.FileNotFoundException:位于 com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.getOutputhHandler(未知 来源)在 com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(未知 来源)在 controllers.UserController.schedulePage(UserController.java:394)
能否将文件放入WEB-INF并尝试使用以下内容:
String path = "/WEB-INF/my.xsl";
ServletContext context = getServletContext();
InputStream xslIs = context.getResourceAsStream(filename);
Source xsl = new StreamSource(xslIs);
我不知道您是否已经得到了答案,但提供的代码(如上面的mzjn所示)显然是不正确的,因为提供给StreamSource的参数是指系统标识符(文件定位器)或文件,而不是将被覆盖的字符串。如果要将输出写入字符串,请使用以下结构:
StringWriter writer = new StringWriter();
result11 = new StreamResult(writer);
// do your transform...
transformer1.transform(xml, result11);
// now obtain your result's output...
String out = writer.toString();
希望这会有所帮助。那么,您只是想将两个文件的内容加载到字符串中吗?这与XML/XSLT/HTML有什么关系?将XSL文件“绑定”到XML文件是什么意思?“没有运气”是什么意思-你犯了错误?你得到了错误的结果?你的Java代码看起来像什么?到底是什么不起作用?是否有任何错误消息?当然,异常处理可能会发出比“不好”更有用的消息?源(源xsl)和结果似乎不包含文件/字符串contents@nayish当前位置这好多了。。。现在你的代码现在做什么?它是否抛出异常并打印“不好”?如果是这样,请让它打印出实际的异常。它是什么例外?什么是
xmlString
?如果在构造时提供一个字符串参数,那么该字符串应该是一个URL。我很久没有接触过这个问题了,但我非常确定当时所选的答案对我来说已经足够好了。。。