0
我希望有人可以給我一些xslt問題的指導。我將一個通用的XML消息接收到代理服務中,然後我需要將這個XML包裝在一個soap消息中,並將它轉發給一個axis2 jms服務。wso2 ESB xslt轉換問題
我已經使用saxon和xalan引擎對我的xml進行了stylehseet測試,它們都按預期工作,但wso2不會接受它我得到一個錯誤WstxParsingException:String']]>'不允許在文本內容,如果我有CDATA部分(我需要)。
任何建議,將不勝感激 感謝 保羅
樣式表如下所示
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:klr="http://klr.com">
<xsl:output method="xml" indent="yes" encoding="UTF-8" cdata-section-elements="klr:legaldocument"/>
<xsl:template match="/">
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:klr="http://klr.com">
<SOAP-ENV:Body>
<klr:Hypertext>
<klr:legaldocument>
<xsl:text disable-output-escaping="yes"><![CDATA[</xsl:text>
<xsl:apply-templates select="*"/>
<xsl:text disable-output-escaping="yes">]]></xsl:text>
</klr:legaldocument>
</klr:Hypertext>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
</xsl:template>
<xsl:template match="node()">
<xsl:element name="{local-name(.)}">
<xsl:copy-of select="@*"/>
<xsl:apply-templates select="node()|*"/>
</xsl:element>
</xsl:template>
</xsl:stylesheet>
感謝。我恐怕也沒有工作。結果是相同的,實際上當我通過我的薩克斯引擎來產生它時,它會產生重複的cdata部分。我確實通過從xsl:output中移除cdata-section-elements來獲得某種形式的成功。但是現在非常混亂的是,我假設在cdat部分有一些axis soap包裝器,它正在被wso2esb使用,但我不確定 – user1557260
我的輸出是'code' <?xml version ='1.0' encoding ='UTF-8'?> < soapenv:信封的xmlns:soapenv = 「http://schemas.xmlsoap.org/soap/envelope/」> < soapenv: Body> < axis2ns3:text xmlns:axis2ns3 =「http://ws.apache.org/commons/ns/payload」> & lt; Test/& gt; </axis2ns3:文本> </soapenv:身體> </soapenv:信封> KLR:legaldocument> KLR:超文本> SOAP-ENV:BODY> SOAP-ENV:Envelope>在'代碼' –
user1557260
請原諒上一篇文章的拼寫。炸腦。 – user1557260