XSLT函数,用于传递节点参数以连接字符串,然后返回元素值

时间:2018-12-07 17:03:52

标签: xslt-1.0

我对xslt还是很陌生,但是我搜索了主题以查看是否有适合我的东西,但是由于我无法真正理解大多数语言,因此无法找到有用的语言。

这就是我要实现的目标。基本上,我想要一个可以将字符串连接到节点路径并返回没有模板匹配的元素值的自定义函数。也许您可以提供一些可以做到这一点的功能代码示例,我可以对其进行回顾。

基本上我想做的是将</root/AccountDetails/plantype>节点传递给类似<xsl:value-of select=”testlang(/root/AccountDetails/plantype)”/>的函数

在该函数中,它将进行语言测试并返回节点的元素值(请注意,许多英语和法语节点嵌套在不同的级别),这就是为什么我要通过整个路径的原因。我仅限于XSLT 1.0,无法更改传递的XML

XML示例

<root>
<AccountDetails>
    <plantype>RRSP</plantype>
    <plantype_fr>CELI</plantype_fr>
</AccountDetails>
<ClientDetails>
    <salutation>Mr.</salutation>
    <salutation_fr>Monseiur</salutation_fr>
</ClientDetails>
<lang>fr</lang>
</root>

可能的功能代码

<xsl:function name=”testlang”>
<xsl:param name=”str”/>
<xsl:choose>
<xsl:when test=”/root/lang[.=’fr’]>
            <xsl:value-of select=”concat($str,’_fr’)”/>
</xsl:when>
<xsl:otherwise>
            <xsl:value-of select=”$str”/>
</xsl:otherwise>
</xsl:choose>
</xsl:function>

0 个答案:

没有答案