2012-12-11 73 views
1

我有一个Java代码片断:XML的Java XSLT标签

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;和& gt;

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

EDIT(第一响应之后) 让我解释的问题:

我的系统出输出低于: 我在这里:
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; 
} 

回答

2

你试过吗?

<xsl:value-of select="responseStatus" disable-output-escaping="no" /> 
+0

感谢您提醒禁用输出转义标记。但是我剩下的问题是在输入端,我无法将xml传递给我的java类。让我详细说明这个问题。 – Michael

+0

当你说“我的系统输出”时,你在控制台上讨论System.out.println或者在HTML页面中输出内容?如果在HTML页面上,您应该查看源代码以获取您的“真实”文本输出。 – Slauster

+0

“我的系统输出”是指控制台上的System.out.println – Michael