biztalk - BizTalk 映射内联 XSLT 作为循环 functoid 的一部分
问题描述
我的目标是使用内联 xslt 交换地图循环的单个部分的内容。
我的地图目前有一个循环 functoid,它从源文档中获取节点数据以<Case>
在目标中创建各种记录
下面我有一个当前输出的片段。
电流输出
<ns11:Case>
<ns1:ActivityStatus>
<ns1:StatusText/>
<ns1:StatusDate>
<ns1:DateTime>2021-06-01T12:35:12</ns1:DateTime>
</ns1:StatusDate>
</ns1:ActivityStatus>
<ns1:ActivityReasonText>TimeCallInitiated</ns1:ActivityReasonText>
</ns11:Case>
<ns11:Case>
<ns1:ActivityStatus>
<ns1:StatusText>John Doe</ns1:StatusText>
<ns1:StatusDate>
<ns1:DateTime/>
</ns1:StatusDate>
</ns1:ActivityStatus>
<ns1:ActivityReasonText>CallEndedBy</ns1:ActivityReasonText>
</ns11:Case>
<ns11:Case>
...
</ns11:Case> #Cases continue on
CallEndedBy 案例由源文档中的以下数据提供。
样本输入
<CallCloser>
<Id>111222333</Id>
<Name>John Doe</Name>
</CallCloser>
具体来说,只有名称节点进入循环 functoid 以创建上面输出中看到的 Case。
但是,我需要<Name>
从<CallCloser>
记录中创建 2 个案例。额外的情况将与“CallEndedBy”完全相同,除了<ActivityReasonText>
应该具有值“CallAdministratedBy”
我试图做一些像下面这样的内联 xslt 来获取单个名称值的两种情况
尝试过 XSLT
<xsl:template name="CallClose">
<xsl:param name="Name" />
<Case>
<ActivityStatus>
<StatusText><xsl:value-of select ="$Name"/></StatusText>
</ActivityStatus>
<ActivityReasonText><xsl:text>CallEndedBy</xsl:text></ActivityReasonText>
</Case>
<Case>
<ActivityStatus>
<StatusText><xsl:value-of select ="$Name"/></StatusText>
</ActivityStatus>
<ActivityReasonText><xsl:text>CallAdministratedBy</xsl:text></ActivityReasonText>
</Case>
</xsl:template>
这在一定程度上可行,但是进入案例记录的所有其他数据都会中断。具体来说,其他案例松散了它们的<Case>
标签,,将所有子节点上移一级,使 xml 不再有效。
例如,“TimeCallInitiated”最终是这样的
输出不正确
<ns1:ActivityStatus>
<ns1:StatusText/>
<ns1:StatusDate>
<ns1:DateTime>2021-06-01T12:35:12</ns1:DateTime>
</ns1:StatusDate>
</ns1:ActivityStatus>
<ns1:ActivityReasonText>TimeCallInitiated</ns1:ActivityReasonText>
实际上,我已经通过从地图生成 xslt、对其进行修改并将新版本用作地图的自定义 xslt 来创建我想要的东西。但是,如果可能的话,我希望找到一种使用内联 xslt 的方法。
有没有办法为这个案例记录添加内联 XSLT 而不会破坏其余记录?
解决方案
推荐阅读
- c# - 为什么我的 C# Socket 服务器不允许客户端的多个实例仅从本地计算机连接?
- javascript - 检查对象中是否存在值
- c# - 如何在控制台应用程序中使用 Globals 类?
- flutter - 保存在 mysql 中的带有 \n 和 unicode 文字的文本在显示时不起作用
- json - Json 对象与嵌套对象、嵌套对象 | 可嘲笑的
- android - 使用 AsyncTask 下载文件
- angular - 表单数组中动态创建的表单控件中的Angular 6自定义验证
- python - 使用 SparkSession.builder 时如何设置 profiler_cls?
- windows - Cmd 可以确定 .exe 或其他文件类型的路径位置吗?
- tensorflow - tf.loadFrozenModel 和 tf.loadModel 会有不同的预测时间吗?