Запрос новичка относительно xsl: select statement

Я придерживаюсь этого довольно простого утверждения. Я пытаюсь использовать синтаксис xsl: choose, чтобы получить значение источника, равное «1», для отображения в качестве должности на рабочем месте, например «Партнер». Это результат, который я ищу:

<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, чтобы в значении отображалось слово «Партнер», а не цифра 1?

Прошу прощения, если я неправильно объяснил себя.

# xslt
Источник
  • 1
    Пожалуйста, покажите нам полный XML. Также прочтите stackoverflow.com/help/mcve
  • 0
    Есть ли у вашего xsl:choose другие параметры, кроме единственного xsl:when отображается? Если нет, лучше использовать xsl:if .
Codelisting
за 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>
Codelisting
Популярные категории
На заметку программисту