BizTalk WCF发送端口CDATA响应

BizTalk WCF发送端口CDATA响应,wcf,xpath,biztalk,biztalk-2010,Wcf,Xpath,Biztalk,Biztalk 2010,为了与第三方Web服务集成,我将在CDATA部分接收实际数据 <getDocumentsReqResponse xmlns="http://tempuri.org/"> <getDocumentsReqResult> <![CDATA[<?xml version="1.0"?> <wsResult> <rsCode>00</rsCode> <rsMessage>...</rsM

为了与第三方Web服务集成,我将在CDATA部分接收实际数据

<getDocumentsReqResponse xmlns="http://tempuri.org/">
    <getDocumentsReqResult>
        <![CDATA[<?xml version="1.0"?>
<wsResult>
<rsCode>00</rsCode>
<rsMessage>...</rsMessage>
</wsResult>]]></getDocumentsReqResult>
</getDocumentsReqResponse>
所以我尝试在发送端口上使用入站路径选项。但当我尝试这样做时,我收到一条空消息。此选项是否适用于CDATA? 我刚刚输入了xpath/[local name='getDocumentsReqResponse'和命名空间uri=]/[local name='getDocumentsReqResult'和命名空间uri=],并将节点编码设置为string。 还是我做错了什么。我过去在接收HTML编码字符串时使用过它,但从未使用过CDATA

无论如何,我在这个过程中都需要一个编排,所以如果这是唯一的选择,我将不得不这样做

感谢您的帮助

试试:

/[local name='getDocumentsReqResponse']/[local name='getDocumentsReqResult']/text


从技术上讲,在xPath中,文本应该返回CDATA内容。您可以在任何.Net应用程序中测试它,因为它的行为都是一样的。

我用一个简单的xslt修复了它

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:var="http://schemas.microsoft.com/BizTalk/2003/var" exclude-result-prefixes="msxsl var s0" version="1.0" xmlns:s0="http://tempuri.org/">
  <xsl:output omit-xml-declaration="yes" method="xml" version="1.0" />
  <xsl:template match="/">
    <xsl:apply-templates select="/s0:getDocumentsReqResponse" />
  </xsl:template>
  <xsl:template match="/s0:getDocumentsReqResponse">
    <xsl:value-of select="normalize-space(s0:getDocumentsReqResult)" disable-output-escaping="yes" />
  </xsl:template>
</xsl:stylesheet>

这也起到了作用-

我已经试过了。无结果:找不到入站正文路径表达式的匹配项。我尝试将编码设置为字符串和xml。