BizTalk映射中Inline XSLT实现Agent节点生成需求求助
BizTalk映射中实现Agent节点提取的Inline XSLT代码
实现思路
- 直接通过XPath筛选匹配
ParticipantRole="Agent"的节点,提取其FirstName值 - 因输入中Agent角色仅出现一次,无需循环处理
- 无匹配节点时,自动输出空值,满足Agent节点留空要求
核心XSLT代码
无命名空间场景
<xsl:template name="GetAgentName"> <Agent> <xsl:value-of select="//Participant[@ParticipantRole='Agent']/FirstName" /> </Agent> </xsl:template>
带命名空间场景(输入Schema有命名空间时)
如果输入Schema包含命名空间,需在XSLT中声明并使用前缀:
<xsl:template name="GetAgentName"> <xsl:param name="inputNode" /> <Agent> <xsl:value-of select="$inputNode//ns:Participant[@ParticipantRole='Agent']/ns:FirstName" xmlns:ns="http://your-input-namespace" /> </Agent> </xsl:template>
使用说明
- 在BizTalk映射中,将上述模板作为Inline XSLT Call Template添加,关联到输出的
Agent节点 - 带命名空间场景中,
http://your-input-namespace需替换为输入Schema实际的命名空间 - 使用
$inputNode参数可避免全局路径的性能问题,更适配BizTalk的上下文处理逻辑
内容的提问来源于stack exchange,提问作者bigB
相关产品推荐
相关产品推荐

