2014-07-17 90 views
-1

我需要訂購我的XSLT。如何在XSLT中訂購?

實施例:

<td> 
<xsl:variable name="Type"> 
    <xsl:value-of select="/Rows/Row[@Group = $group and (@Type_Typ_x='Type1' or @Type_Typ_x='Type2')]/@Type_Typ_x"/> 
</xsl:variable> 

<xsl:value-of select="/Rows/Row[@Group = $group and (@Type_Typ_x='Type1' or @Type_Typ_x='Type2')]@Title" disable-output-escaping="yes"/> 

我想僅顯示1型,如果沒有,則顯示第二類型。 任何人都可以幫助我嗎?

對不起,我的英語。 太感謝你了......

回答

0

爲了得到「類型1」如果存在的話,你只需做到這一點

<xsl:value-of select="Rows/Row[@Type_Typ_x='Type1']/@Title" /> 

而且得到了「2型」如果「的Type1」不存在,你可以做到這一點

<xsl:value-of select="Rows[not(Row[@Type_Typ_x='Type1'])]/Row[@Type_Typ_x='Type2']/@Title" /> 

所以,你可以把這兩個聲明一個接一個,因爲只有一個會返回一個值。或者,也可以結合起來,像這樣:

<xsl:value-of select="Rows/Row[@Type_Typ_x='Type1']/@Title 
         |Rows[not(Row[@Type_Typ_x='Type1'])]/Row[@Type_Typ_x='Type2']/@Title" /> 

另一種方法可以是使用一個XSL:只要選擇聲明

<xsl:choose> 
    <xsl:when test="Rows/Row[@Type_Typ_x='Type1']"> 
     <xsl:value-of select="Rows/Row[@Type_Typ_x='Type1']/@Title" /> 
    </xsl:when> 
    <xsl:when test="Rows/Row[@Type_Typ_x='Type2']"> 
     <xsl:value-of select="Rows/Row[@Type_Typ_x='Type2']/@Title" /> 
    </xsl:when> 
</xsl:choose> 

爲一體的xsl:當被發現是真,其他人不會被評估,無論他們是否真實。

最後,如果你能保證「類型1」的記錄總是先爲「type2」的XML記錄來了,那麼這會工作:

<xsl:value-of select="Rows/Row[@Type_Typ_x='Type1' or @Type_Typ_x='Type2'][1]/@Title"/> 
+0

添, 非常感謝你。有效!謝謝你,謝謝你,謝謝你! 你是對的,我解決這個問題與你的解釋!我希望有一天我能幫助你! 謝謝! – Spydax