Xml 使用xsl:if检查节点的值
我想检查节点Xml 使用xsl:if检查节点的值,xml,xslt,Xml,Xslt,我想检查节点是“借方”还是“贷方” 这样我就可以将信息从信用卡信息转换为借记或信用交易 任何建议???元素xsl:if表示“如果A做B否则什么也不做”。使用xsl:choose(使用xsl:when和xsl:others)表示“如果A做B做C”。否则,我们确实需要一个更具体的例子来说明您的意思。元素xsl:if表示“if a do B else do nothing”。使用xsl:choose(使用xsl:when和xsl:others)表示“如果A做B做C”。否则,我们确实需要一个更具体的例子
是“借方”还是“贷方”
这样我就可以将信息从信用卡信息转换为借记或信用交易
任何建议???元素
xsl:if
表示“如果A做B否则什么也不做”。使用xsl:choose
(使用xsl:when
和xsl:others
)表示“如果A做B做C”。否则,我们确实需要一个更具体的例子来说明您的意思。元素xsl:if
表示“if a do B else do nothing”。使用xsl:choose
(使用xsl:when
和xsl:others
)表示“如果A做B做C”。否则,我们确实需要一个更具体的例子来说明您的意思。我特别喜欢在大多数情况下使用xsl:choose。它提供了最大的灵活性。我还将使用模板之外的变量作为类型
变量代码(属于模板之外):
xsl:选择代码(属于模板):
类型是信用卡
类型是借记卡
类型既不是借记卡也不是信用卡
希望这有帮助:)我特别喜欢在大多数情况下使用xsl:choose。它提供了最大的灵活性。我还将使用模板之外的变量作为类型 变量代码(属于模板之外):
xsl:选择代码(属于模板):
类型是信用卡
类型是借记卡
类型既不是借记卡也不是信用卡
希望这有帮助:)你的问题太模糊,无法回答。您可以发布输入XML、您尝试过的XSLT和想要的输出XML的示例吗?您的问题太模糊,无法回答。您可以发布输入XML、您尝试过的XSLT和想要的输出XML的示例吗?您不能将代码缩短为或类似的格式吗?根据我的经验,XSL将空节点集解释为false,将1+节点集解释为true。但是这可能不可靠。@Tom W:我喜欢使用变量。。这只是我的观点:我认为这是更好的编码实践。这是因为如果您需要使用此文本一千次,但突然需要更改路径的一部分,则只需要在变量中更改一次,而不是在使用测试的所有位置更改一千次。不对你的想法感兴趣。这是一个公平的反驳。这将取决于所使用的上下文;我自然会假设,对于很多重复操作,使用变量会降低XSL处理引擎的速度;但是你关于可重用性的论点是很好的。如果它被用于许多不同的地方,那么变量可能是更好的选择。我倾向于在适当的地方选择简洁。@Tom W:你认为它会降低处理引擎的速度多少?我只是想知道xsl的未来编码:)难道你不能把代码缩短到或类似的程度吗?根据我的经验,XSL将空节点集解释为false,将1+节点集解释为true。但是这可能不可靠。@Tom W:我喜欢使用变量。。这只是我的观点:我认为这是更好的编码实践。这是因为如果您需要使用此文本一千次,但突然需要更改路径的一部分,则只需要在变量中更改一次,而不是在使用测试的所有位置更改一千次。不对你的想法感兴趣。这是一个公平的反驳。这将取决于所使用的上下文;我自然会假设,对于很多重复操作,使用变量会降低XSL处理引擎的速度;但是你关于可重用性的论点是很好的。如果它被用于许多不同的地方,那么变量可能是更好的选择。我倾向于在适当的地方选择简洁。@Tom W:你认为它会降低处理引擎的速度多少?只是想知道xsl的未来编码:)谢谢
<xsl:variable name="$type">
<xsl:value-of select="//type" />
</xsl:variable>
<xsl:choose>
<xsl:when test="$type='credit'">
<xsl:text>Type is credit card</xsl:text>
</xsl:when>
<xsl:when text="$type='debit'">
<xsl:text>Type is debit card</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text>Type is neither debit or credit card</xsl:text>
</xsl:otherwise>
</xsl:choose>