如何将 String 对象(包含 XML)“转换”到现有 JSP 页上的元素

2022-09-01 21:56:35

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

String carsInGarage = garage.getCars();

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

我看过的大多数解决方案都导入了包: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();
}

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

有人可以建议/协助。我已经搜索了高低的解决方案,但我就是无法拉出任何东西。


答案 1

使用 StringReaderStringWriter

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();
}

答案 2

如果在某些时候您希望源包含的不仅仅是单个字符串,或者您不想手动生成 XML 包装器元素,请创建一个包含源的 DOM 文档,并使用 DOMSource 将其传递给转换器。


推荐