我有一个输入架构,其中包含电话号码类型的电话号码列表,如下所示:
<phoneNumbers>
<phoneNumber type="work">...</phoneNumber>
<phoneNumber type="home">...</phoneNumber>
</phoneNumbers>
我只想映射一个特定类型的号码,让我们说“工作”。如果工作&#39;类型的电话号码不可用我需要填写默认值。
这就是我的开始:
我遇到的问题是,如果没有&#39; work&#39;工作,我就无法在输出中显示默认值。电话号码在场。
答案 0 :(得分:3)
如何使用脚本functoid。
public string setphonenumber(string work_number)
{
string default = "123456789";
if(work_number ="")
return default;
else return work_number;
}
答案 1 :(得分:3)
您可以使用内联XSLT脚本功能。
假设源和目标结构如下所示:
内联XSLT将是这样的:
<workNumber xmlns:p="http://PhoneNumberMap.SourceSchema">
<xsl:variable name="var:v1" select="/p:Root/phoneNumbers/phoneNumber[@type='work']" />
<xsl:choose>
<xsl:when test="$var:v1!=''">
<xsl:value-of select="$var:v1" />
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="'some default'" />
</xsl:otherwise>
</xsl:choose>
</workNumber>
答案 2 :(得分:0)
如果手机号码有固定的长度,你可以串起连接右侧的默认值,然后输入一个字符串左。
答案 3 :(得分:0)
我建议您使用Not equal functoid设置默认值,如果它与&#34; Work&#34;不同,如果它等于&#34; work&#34 ;,您将在输出中获得源值
答案 4 :(得分:0)
尝试在xlst中制作完整的地图,而不是使用BizTalk地图functoid。在开始时你将与xslt斗争,但过了一段时间,你会喜欢它!
我不会在这里发布整个解决方案,但我找到了一个很好的Youtube post来解释一切。它在3点开始变得有趣。