Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 获取一个XML文件和一个XSL文件,并从中生成一个HTML字符串?_Java_Html_Xml_Xslt_Servlets - Fatal编程技术网

Java 获取一个XML文件和一个XSL文件,并从中生成一个HTML字符串?

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文件存储在服务器上,我要做的是当用户单击站点上的某个链

我有两个字符串,一个是使用JavaDOM接口构建的XML字符串,另一个是要绑定到该XML文件的外部XSL文件。我尝试使用Java转换方法,但运气不佳(这意味着我似乎无法在web上找到任何解决方案)

如何获取XML文件和XSL文件并从中生成HTML字符串?

我试图做的是将一个XML页面插入到我的JSP页面中

只是澄清一下:这是在servlet中完成的,而不是在JavaScript中

更多信息:

我在运行时以字符串的形式创建XML,我得到的XSL文件存储在服务器上,我要做的是当用户单击站点上的某个链接时,向用户显示XSL文件修改的XML,我想将其嵌入现有JSP页面中(以保持站点的标准外观)

到目前为止,我得到的是:

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。我很久没有接触过这个问题了,但我非常确定当时所选的答案对我来说已经足够好了。。。