我正在调用将响应 XML 作为转义 XML 嵌入的 Web 服务。我收到了完整的 SOAP 响应,但我只对“转义的 XML”部分 ( <SendMessageResult>
) 感兴趣。
我正在尝试编写一个 XSL (1.0) 来检索转义的 XML 并将其取消转义,因此我可以通过其他非 XSLT 组件对其进行处理。
我已经在 StackOverflow 中尝试了其他一些“取消转义”的解决方案,但没有运气。
来自 Web 服务的响应
<?xml version="1.0" encoding="UTF-8"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<SendMessageResponse xmlns="http://www.company.com/CAIS">
<SendMessageResult><?xml version="1.0"?><IEXInboundServiceResponse><IEXInboundServiceResponseVersion>1.0</IEXInboundServiceResponseVersion><ServiceResponse>IEX_SUCCESS</ServiceResponse><RequestMessageId>22658651-024E-445B-96C1-94F027205E01</RequestMessageId></IEXInboundServiceResponse></SendMessageResult>
</SendMessageResponse>
</s:Body>
</s:Envelope>
取消转义后所需的输出
<?xml version="1.0"?>
<IEXInboundServiceResponse>
<IEXInboundServiceResponseVersion>1.0</IEXInboundServiceResponseVersion>
<ServiceResponse>IEX_SUCCESS</ServiceResponse>
<RequestMessageId>22658651-024E-445B-96C1-94F027205E01</RequestMessageId>
</IEXInboundServiceResponse>
我正在使用的当前 XSLT
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" indent="yes" omit-xml-declaration="yes"/>
<xsl:template match="//SendMessageResult">
<xsl:value-of select="." disable-output-escaping="yes" />
</xsl:template>
</xsl:stylesheet>