включение строки в условие when в xsl - PullRequest
0 голосов
/ 04 июля 2018

Я пытаюсь включить строку в условие when, но оно не работает.

Я пробовал это:

<xsl:text>Salary:</xsl:text>
    <xsl:for-each select="z:SalaryRecord">
    <xsl:choose>
        <xsl:when test="z:SalaryRecord = 'agreement'">
            <xsl:value-of select="concat('&#09;',position(),'&#09;',z:Type,'&#10;')"/>
        </xsl:when>
        <xsl:otherwise>
            <xsl:value-of select="concat('&#09;',position(),'&#09;','&#09;',z:Type,'(','from ',z:AmountFrom, ' to ',z:AmountTo,')','&#10;')"/>
        </xsl:otherwise>
    </xsl:choose>
</xsl:for-each>

и это:

<xsl:when test="z:SalaryRecord::text() = 'agreement'">

и это

<xsl:when test="z:SalaryRecord == 'agreement'">

Мой исходный код XML:

<RequiredSalary>
   <SalaryRecord>
    <Type>monthly</Type>
    <AmountFrom>1000</AmountFrom>
    <AmountTo>2000</AmountTo>
  </SalaryRecord>
  <SalaryRecord>
   <Type>agreement</Type>
  </SalaryRecord>
</RequiredSalary>

Есть идеи, пожалуйста?

спасибо

1 Ответ

0 голосов
/ 04 июля 2018

Одним из исправлений в вашей ситуации может быть следующий шаблон. Однако вам необходимо определить пространство имен для префикса z в таблице стилей. Попробуйте добавить xmlns:z="http://whatever.is.your.namespace" к элементу таблицы стилей XSLT.

<xsl:template match="z:RequiredSalary">
    <xsl:for-each select="z:SalaryRecord">
        <xsl:text>Salary:</xsl:text>
        <xsl:choose>
            <xsl:when test="z:Type = 'agreement'">
                <xsl:value-of select="concat('&#09;',position(),'&#09;',z:Type,'&#10;')"/>
            </xsl:when>
            <xsl:otherwise>
                <xsl:value-of select="concat('&#09;',position(),'&#09;','&#09;',z:Type,'(','from ',z:AmountFrom, ' to ',z:AmountTo,')','&#10;')"/>
            </xsl:otherwise>
        </xsl:choose>
    </xsl:for-each>
    <xsl:value-of select="'&#10;'" />
</xsl:template>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...