我有一个像xml:
<TransactionData>
<Tag1>abc</Tag1>
<Tag2>cde</Tag2>
<EnhancedDataIndicator>true</EnhancedDataIndicator>
<EmailAddress>bob.smith@email.com</EmailAddress>
<PassengerName>SMITH/BOB</PassengerName>
</TransactionData>
Run Code Online (Sandbox Code Playgroud)
和相应的XSLT如:
...
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="EnhancedDataIndicator">
<xsl:choose>
<xsl:when test = "EnhancedDataIndicator = 'true'">
<EnhancedDataIndicator>Y</EnhancedDataIndicator>
</xsl:when>
<xsl:otherwise>
<EnhancedDataIndicator><xsl:text>N</xsl:text></EnhancedDataIndicator>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
Run Code Online (Sandbox Code Playgroud)
我试图输入一个逻辑,当它为'true'时,可以使EnhancedDataIndicator值为'Y',当'false'时,它为'N'.目前,XSLT没有实现这一点.它始终显示"N"表示EnhancedDataIndicator.转换后的当前xml如下所示:
<TransactionData>
<Tag1>abc</Tag1>
<Tag2>cde</Tag2>
<EnhancedDataIndicator>true</EnhancedDataIndicator>
<EmailAddress>bob.smith@email.com</EmailAddress>
<PassengerName>SMITH/BOB</PassengerName>
</TransactionData>
Run Code Online (Sandbox Code Playgroud)
好心提醒.
由于您的模板已经匹配EnhancedDataIndicator,您只需要测试其值current(),即
<xsl:when test = ". = 'true'">
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
141 次 |
| 最近记录: |