2012-12-11 70 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