2010-06-08 32 views
0

我要检查,如果节点<Type>或者是“借记卡”或“信用”使用XSL:如果检查

,这样我可以从刚才的信用卡信息转换信息为借记或节点的值信用交易。

任何建议?

+2

你的问题太模糊回答。你能发布输入XML样本,你试过的XSLT和想要的输出XML吗? – Oded 2010-06-08 19:56:47

回答

2

元素xsl:if是用于“如果A做B别无所求”。使用xsl:choose(与xsl:whenxsl:otherwise)为“如果A做别人做C”。否则,我们确实需要一个更具体的例子来说明你的意思。

+0

谢谢 它的工作非常感谢所有的意见和答案即使我qustion wasnt描述性(对不起) – 2010-06-09 14:54:32

1

我特别喜欢在大多数情况下使用xsl:choose。它提供了最大的灵活性。我也会在模板外使用一个变量作为类型。

可变码(属于外模板):

<xsl:variable name="$type"> 
    <xsl:value-of select="//type" /> 
</xsl:variable> 

的xsl:选择代码(在模板所属):

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

希望这有助于:)

+0

你能不能缩短该代码的?或者诸如此类根据我的经验,XSL解释一个空的节点设置为假和设置节点1+为真,这可能是不可靠然而 – 2010-06-08 21:04:22

+0

@汤姆W:我喜欢用变量..这只是我的意见:我认为这是更好的编码这是因为如果你需要使用这个文本一千次,但所有的突然一部分路径需要改变,它只需要在变量中改变一次,而不是在所有使用测试的地方上千次。没有?对你的想法感兴趣。 – developer 2010-06-08 21:14:00

+0

这是一个公平的反驳。这将取决于它使用的环境;我自然会认为,对于很多重复的操作,使用变量会减慢XSL处理引擎的速度;但是你的可重用性是一个很好的论点。如果在很多不同的地方使用它,那么变量可能是更好的选择。我倾向于选择适当的简洁。 – 2010-06-09 11:35:03