2010-06-08 44 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