xslt-1.0 - 尝试在 XSLT 中比较两个字符串,结果未按预期进行
问题描述
我正在尝试比较 XSLT 中的两个字符串,并希望将硬编码响应作为结果
我尝试在 XSLT 中保留 if 条件,但它为我提供了两个结果
<xsl:template name="variableTransformation">
<xsl:param name="text"/>
<xsl:param name="delimiters" select="' /-'"/>
<xsl:variable name="upper" select="'ABCDEFGHIJKLMNOPQRSTUVWXYZ'"/>
<xsl:variable name="lower" select="'abcdefghijklmnopqrstuvwxyz'"/>
<xsl:variable name="nextDelimiter" select="substring(translate($text, translate($text, $delimiters, ''), ''), 1, 1)" />
<xsl:variable name="string" select="substring-before(concat($text, ' '), substring(concat($nextDelimiter, ' '), 1, 1))" />
<xsl:value-of select="translate(substring($string, 1, 1), $lower, $upper)"/>
<xsl:value-of select="translate(substring($string, 2), $upper, $lower)"/>
<xsl:if test="$nextDelimiter">
<xsl:value-of select="$nextDelimiter" />
<xsl:call-template name="variableTransformation">
<xsl:with-param name="text" select="substring-after($text, $nextDelimiter)"/>
<xsl:with-param name="delimiters" select="$delimiters"/>
</xsl:call-template>
</xsl:if>
<xsl:if test="$text='SELF EMPLOYED'">
<xsl:value-of select="'Self-Employed'"></xsl:value-of>
</xsl:if>
<xsl:if test="$text='SKILL TRADE'">
<xsl:value-of select="'Skilled Trade'"></xsl:value-of>
</xsl:if>
</xsl:template>
输入: 1. 政府 2. 学生 3. 家庭主妇 4. 专业人士 5. 自雇人士 6. 服务/零售 7. 技能贸易 8. 失业人士 9. 其他
预期的:
Government
Student
Homemaker
Professional
Self-Employed
Service/Retail
Skilled Trade
Unemployed
Other
实际的:
Government
Student
Homemaker
Professional
Self EmployedSelf-Employed
Service/Retail
Skill TradeSkilled Trade
Unemployed
Other
解决方案
推荐阅读
- amazon-web-services - AWS Dynamodb 中的 queryRequest 存在和问题
- authentication - 在基于令牌的身份验证中,应用服务器如何知道哪些令牌是有效的?
- ios - 在检索更改的 CloudKit 记录时识别记录更改的类型
- angularjs - angular-ui-bootstrap 2.5.6 不适用于 AngularJS 1.7.8
- ember.js - ember-leaflet - 使用缩放初始化地图以适合所有引脚
- blogger - 如何去除博客页面底部的灰色条?
- shell - 需要语法才能同时使用 Ansible shell 和命令模块
- python - 查找一直未能达到目标的 ID
- python - 从大文本文件中过滤停用词(使用包:nltk.corpus)
- javascript - 在方法的回调函数中使用变量