2016-11-21 49 views
0

我堅持這個相當簡單的聲明。 我正在嘗試使用xsl:choose語法來獲取「1」的來源的值,以顯示在「合作伙伴」等職場中的職位。這是我的採購結果:Noob查詢有關xsl:選擇語句

<PresTimekeeper1_TkprDate_Title>1</PresTimekeeper1_TkprDate_Title> 

的選擇我用的語句是:

<xsl:choose> 
    <xsl:when test="./Attributes/PresTimekeeper1_TkprDate_Title = '1'"> 
    <xsl:value-of select="Partner" /> 
    </xsl:when> 
</xsl:choose> 

當我運行

<xsl:value-of select="./Attributes/PresTimekeeper1_TkprDate_Title" /> 

輸出文件顯示數字1。所以,我知道我正在使用正確的來源。

如何定義1,這樣value-of會顯示單詞'Partner'而不是數字1?

如果我沒有正確解釋我自己,我很抱歉。

+1

請向我們展示完整的XML。請同時閱讀https://stackoverflow.com/help/mcve – potame

+0

您的'xsl:choose'在顯示的單個'xsl:when'旁邊有其他選項嗎?如果沒有,你最好使用'xsl:if'。 –

回答

1

寫這個最慣用的方法是

<xsl:if test="./Attributes/PresTimekeeper1_TkprDate_Title = '1'" 
    >Partner</xsl:if> 

有些人喜歡把一個xsl:text元素中的文本字符串。

我個人比較喜歡的成語:

<xsl:value-of select="'Partner' 
    [current()/Attributes/PresTimekeeper1_TkprDate_Title = '1']"/> 

但使用它,我沒有看到很多人。

1

指令:

<xsl:value-of select="Partner" /> 

正在尋找一個名爲Partner子節點。如果你想在文字文本「合作伙伴」,你必須使用:

<xsl:value-of select="'Partner'" /> 

,或最好:

<xsl:text>Partner</xsl:text> 

您也可以直接放置在xsl:when指令中的文本(沒有額外的空格):

<xsl:when test="./Attributes/PresTimekeeper1_TkprDate_Title = '1'">Partner</xsl:when>