XSLT 1.0 выберите значение в наборе узлов со строкой - PullRequest
0 голосов
/ 22 февраля 2011

У меня возникли проблемы с выбором значений в наборе узлов. У меня есть строковая переменная, которые объединяются в пути следующего существующего узла в XML. Но когда я пытаюсь выбрать ценность из него, это приводит к вставке значения этой переменной, а не значения узла. Я не могу найти, как я могу преобразовать строку в набор узлов для правильного выбора. Пожалуйста, помогите.

<xsl:for-each select="result/node()">
    <xsl:copy>
        <xsl:for-each select="./node()">
            <xsl:copy>
                <xsl:attribute name="rating">
                    <xsl:text>0</xsl:text>
                </xsl:attribute>
                <xsl:choose>
                    <xsl:when test="translate(
                                       substring(.,1,3),
                                       $upCase,
                                       $lowCase
                                    ) = 'id_'">
                        <xsl:value-of  select="."/>
                    </xsl:when>
                    <xsl:otherwise>
                        <xsl:variable name="cval"
                                      select="concat(
                                                 '/survey/checkbox_value/',
                                                 local-name(),
                                                 '/.'
                                              )" />
                        <xsl:value-of select="$cval" />
                    </xsl:otherwise>
                </xsl:choose>
            </xsl:copy>
        </xsl:for-each>
    </xsl:copy>
</xsl:for-each>

1 Ответ

1 голос
/ 22 февраля 2011

Вам не нужно ничего конвертировать.Это можно сделать с простым xpath.

<xsl:variable name="local_name" select="local-name()"/>
<xsl:value-of select="/survey/checkbox_value/node()[
                         local-name() = $local_name
                      ]"/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...