2016-11-21 96 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>