Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.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 如何';转换';现有JSP页面上元素的字符串对象(包含XML)_Java_Xml_Xslt - Fatal编程技术网

Java 如何';转换';现有JSP页面上元素的字符串对象(包含XML)

Java 如何';转换';现有JSP页面上元素的字符串对象(包含XML),java,xml,xslt,Java,Xml,Xslt,目前,我有一个包含XML元素的字符串对象: String carsInGarage = garage.getCars(); 现在我想将这个字符串作为输入/流源(或某种源)传递,但不确定选择哪一个以及如何实现它 我看到的大多数解决方案都是导入包:javax.xml.transform并接受一个xml文件(stylerXML.xml),然后输出到一个HTML文件(outputFile.HTML)(参见下面的代码) 我希望接受一个字符串对象并(使用XSL)输出到现有JSP页面中的一个元素。我只是不知

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

String carsInGarage = garage.getCars();
现在我想将这个字符串作为输入/流源(或某种源)传递,但不确定选择哪一个以及如何实现它

我看到的大多数解决方案都是导入包:javax.xml.transform并接受一个xml文件(stylerXML.xml),然后输出到一个HTML文件(outputFile.HTML)(参见下面的代码)

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

有人能提供建议/帮助吗。我到处寻找解决方案,但我什么都找不出来。

使用a和a:

试试看{
StringReader=新StringReader(“blabla”);
StringWriter编写器=新的StringWriter();
TransformerFactory tFactory=TransformerFactory.newInstance();
变压器变压器=t工厂新变压器(
新的javax.xml.transform.stream.StreamSource(“styler.xsl”);
变形金刚(
新的javax.xml.transform.stream.StreamSource(reader),
新的javax.xml.transform.stream.StreamResult(writer));
字符串结果=writer.toString();
}捕获(例外e){
e、 printStackTrace();
}

如果您希望源代码包含不止一个字符串,或者不希望手动生成XML包装器元素,请创建一个包含源代码的DOM文档,并使用

String str = "<my>xml</my>"    
StreamSource src = new StreamSource(new StringReader(str));
ByteArrayOutputStream baos = new ByteArrayOutputStream();
Result res = new StreamResult(baos);
transformer.transform(src, res);
String str=“xml”
StreamSource src=新的StreamSource(新的StringReader(str));
ByteArrayOutputStream bas=新的ByteArrayOutputStream();
结果res=新的StreamResult(baos);
变换(src,res);

你好,布鲁诺,谢谢你的回答。它现在正在正确编译:)但是,我仍然无法将它打印到屏幕上。我目前正在尝试:out.println(writer);但这是失败的。也许转换有错误。。。它到底是如何失败的?它失败了,因为浏览器上没有打印任何内容。在try块的底部有:String result=writer.toString();打印(“+结果+”);我还刚刚安装了一个名为Firebug的工具来检查HTML正文的内容。我不知道这是否与此有关,但我可以在TRY块外输出.print()一个随机字符串。但是当它在TRY-block中时,我无法输出相同的随机字符串。嗨,Bruno,我已经成功地将转换/样式化的XML输出到屏幕上。我必须感谢你的帮助。你真是太棒了:)不过我还有一个问题要问:你希望原始字符串和转换/样式化的XML一起输出吗?或者您只是希望转换/样式只显示?
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();
}
String str = "<my>xml</my>"    
StreamSource src = new StreamSource(new StringReader(str));
ByteArrayOutputStream baos = new ByteArrayOutputStream();
Result res = new StreamResult(baos);
transformer.transform(src, res);