вложенный <xsl: if> & <xsl: when> - PullRequest
2 голосов
/ 01 июля 2010

Можете ли вы вкладывать xsl: если внутри вложенного xsl: когда, например:

    <xsl:choose>
        <xsl:when test="param/@id  =  '1' " >
            <xsl:if test="param/value = 'XML' ">
                <xsl:when test="param/@id = '2' ">
                    <xsl:if test="param/value = 'HTTP' ">
                        <xsl:when test="param/@id = '3' ">
                            <xsl:if test="param/value = 'Y' ">
                                <xsl:call-template name="buildPayload"/>
                            </xsl:if>
                        </xsl:when>
                    </xsl:if>
                </xsl:when>
            </xsl:if>
        </xsl:when>
    </xsl:choose>

Можно ли это использовать или есть возможность упростить это до более компактного кода?

Ответы [ 3 ]

7 голосов
/ 01 июля 2010

Не пытаясь это сделать: я бы подумал, что <xsl:when> не может быть дочерним узлом <xsl:if> без другого <xsl:choose> между ними. Но что ты пытаешься сделать? Если я правильно понял, вы хотите запустить <call-template> тогда и только тогда, когда (param/@id='1' and param/value='XML') or (param/@id='2' and param/value='HTTP') or (param/@id='3' and param/value='Y') ... попробуйте это в качестве тестового значения:

<xsl:if test="(param/@id='1' and param/value='XML') or (param/@id='2' and param/value='HTTP') or (param/@id='3' and param/value='Y')">
    <xsl:call-template name="buildPayload"/>
</xsl:if>
1 голос
/ 01 июля 2010

Да, похоже, это не сработает.Вы можете добавить "и" s и "или" s в тест для когда.

0 голосов
/ 01 июля 2010

Возможно, вы захотите прочитать о XPath .Вы должны быть в состоянии использовать выражения XPath и синтаксис выбора узлов, чтобы помочь с этим выбором.

Вы также можете попробовать использовать визуальный XSLT-конструктор, такой как инструменты в Visual Studio.Например, Visual Studio предоставит IntelliSense и проверку для XSLT.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...