BizTalk WCF发送端口CDATA响应
为了与第三方Web服务集成,我将在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
<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。