我有这样一个个人识别号码:53012393715。第10个号码表示性别。我想用if-else语句来做这样的操作。起初我应该从id获得第10个数字,在我的情况下它是1(一个)。如果数字是偶数(0,2,4,6,8)则表示女性,否则(1,3,5,7,9)表示男性。我需要在输出XML文件中获取性别。
我尝试使用concat函数获取第10个数字,但它不起作用,我也不知道如何正确使用if-else语句。
我的输入XML文件:
<ClientList>
<Client>
<IdNumber>53012393715</IdNumber>
</Client>
</ClientList>
我想得到的这个输出XML文件:
<ClientList>
<Client>
<Gender>man</Gender>
</Client>
</ClientList>
答案 0 :(得分:2)
使用substring
获取第10个项目
<xsl:variable name="gender" select="substring(IdNumber, 10, 1)" />
在XSLT中,xsl:if
只是一个语句,没有别的。如果你想“if / else”,你可以使用xsl:choose
<xsl:choose>
<xsl:when test="number($gender) mod 2 = 0">Male<xsl:when>
<xsl:otherwise>Female<xsl:otherwise>
<xsl:choose>
把它放在一起就可以了......
<xsl:template match="Client">
<Client>
<xsl:variable name="gender" select="substring(IdNumber, 10, 1)" />
<xsl:choose>
<xsl:when test="number($gender) mod 2 = 1">Male</xsl:when>
<xsl:otherwise>Female</xsl:otherwise>
</xsl:choose>
</Client>
</xsl:template>
但是,如果你可以使用XSLT 2.0,你就可以这样做......
<xsl:value-of select="if (number($gender) mod 2 = 1) then 'male' else 'female'" />