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

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

String carsInGarage = garage.getCars(); 

我现在想要将此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(); } 

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

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

使用StringReaderStringWriter

 try { StringReader reader = new StringReader("blabla"); 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(); } 

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

这对我有用。

 String str = "xml" StreamSource src = new StreamSource(new StringReader(str)); ByteArrayOutputStream baos = new ByteArrayOutputStream(); Result res = new StreamResult(baos); transformer.transform(src, res);