1

我有一个java代码片段:

public static String echo(String a) {
    System.out.println("HERE I AM:"+a+":");
    return "<xxx>" + a + "</xxx>";
}

由以下 xsl 片段调用:

<GOGO>
     <xsl:variable name="test">
        <xsl:copy-of select="responseStatus"/>
     </xsl:variable>
     <xsl:copy-of select="javamap:echo($test)"/>
</GOGO>

出于某种原因,如果将 xml 传递给 java 方法,则会删除所有元素标记。在输出端,如果我尝试返回 xml 标签,< 和 > 将被转换为 & lt; 和>

我的代码片段有什么问题,如何修复它以输出 XML?

编辑(在第一次回复后)让我详细说明问题:

我的系统输出如下: 我在这里:
val1
val2

理想情况下,我希望我的系统是: HERE I AM:<foo>val1</foo><bar>val2</bar>: 如您所见,xml 标签由于某种原因被删除。

这是我想出的解决方案:

public static String echo(Node a) throws Exception {

    StringWriter writer = new StringWriter();
    Transformer transformer = TransformerFactory.newInstance().newTransformer();
    transformer.transform(new DOMSource(a), new StreamResult(writer));
    String xml = writer.toString();
    return xml;
}
4

1 回答 1

2

你试过这个吗?

<xsl:value-of select="responseStatus" disable-output-escaping="no" /> 
于 2012-12-11T16:05:39.433 回答