Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
XML中的If-else语句_Xml_Xslt - Fatal编程技术网

XML中的If-else语句

XML中的If-else语句,xml,xslt,Xml,Xslt,我有这样一个个人身份证号码:53012393715。第十个数字表示性别。我想使用if-else语句来执行这样的操作。首先,我应该从id获得第10个号码,在我的情况下是1(一)。如果数字是偶数(0,2,4,6,8),则表示女性,否则(1,3,5,7,9)表示男性。我需要在输出XML文件中获取性别 我尝试使用concat函数获取第10个数字,但它不起作用,而且我不知道如何正确使用if-else语句 我的输入XML文件: <ClientList> <Client>

我有这样一个个人身份证号码:53012393715。第十个数字表示性别。我想使用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>

53012393715
这是我要获取的一个输出XML文件:

<ClientList>
  <Client>
    <Gender>man</Gender>
  </Client>
</ClientList>

男人

使用
子字符串
获取第10项

 <xsl:variable name="gender" select="substring(IdNumber, 10, 1)" />
把这些放在一起会得到这个

<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>

男性
女性
然而,如果您可以使用XSLT2.0,您将能够做到这一点

<xsl:value-of select="if (number($gender) mod 2 = 1) then 'male' else 'female'" />

使用
子字符串
获取第10项

 <xsl:variable name="gender" select="substring(IdNumber, 10, 1)" />
把这些放在一起会得到这个

<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>

男性
女性
然而,如果您可以使用XSLT2.0,您将能够做到这一点

<xsl:value-of select="if (number($gender) mod 2 = 1) then 'male' else 'female'" />


您尝试过什么?你的实际产出是多少?请学习如何创建一个,并检查。你尝试了什么?你的实际产出是多少?请学习如何创建一个,也请检查。非常感谢。顺便问一下,如何检查我是否可以使用XSLT2.0?它似乎比XSLT1.0更容易使用。这取决于您使用的处理器。查看您的处理器是否支持XSLT2.0非常感谢。顺便问一下,如何检查我是否可以使用XSLT2.0?它似乎比XSLT1.0更容易使用。这取决于您使用的处理器。请参阅以检查处理器是否支持XSLT 2.0