如何将String对象(包含XML)"转换"为现有JSP页面上的元素

Lyc*_*ana 23 java xml xslt

目前,我有一个包含XML元素的String对象:

String carsInGarage = garage.getCars();
Run Code Online (Sandbox Code Playgroud)

我现在想要将此String作为输入/流源(或某种源)传递,但我不确定选择哪一个以及如何实现它.

我看过的大多数解决方案都导入了包:javax.xml.transform并接受XML文件(stylerXML.xml)并输出到HTML文件(outputFile.html)(参见下面的代码).

try 
{
    TransformerFactory tFactory = TransformerFactory.newInstance();
    Transformer transformer = tFactory.newTransformer(new StreamSource("styler.xsl"));

    transformer.transform(new StreamSource("stylerXML.xml"), new StreamResult(new FileOutputStream("outputFile.html")));
}
catch (Exception e)
{
    e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)

我想接受一个String对象并输出(使用XSL)到现有JSP页面中的元素.我只是不知道如何实现这一点,即使查看了上面的代码.

有人可以建议/协助.我已经搜索了高低解决方案,但我无法解决任何问题.

bru*_*nde 57

使用a StringReader和a StringWriter:

try {
    StringReader reader = new StringReader("<xml>blabla</xml>");
    StringWriter writer = new StringWriter();
    TransformerFactory tFactory = TransformerFactory.newInstance();
    Transformer transformer = tFactory.newTransformer(
            new javax.xml.transform.stream.StreamSource("styler.xsl"));

    transformer.transform(
            new javax.xml.transform.stream.StreamSource(reader), 
            new javax.xml.transform.stream.StreamResult(writer));

    String result = writer.toString();
} catch (Exception e) {
    e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)