Как оценить выражение XSLT и пропустить узел по условию? - PullRequest
0 голосов
/ 24 мая 2018

Как я могу добавить оценку для свойства xslt и пропустить узел for-each при условии этой оценки?

<some>
    <deep>
        <level availability="10" code="A"/>
    </deep>
</some>


<xsl:template match="some">
    <xsl:for-each select="//deep//level">
        <xsl:value-of select=".//@code, .//@availability" separator=";"/>
    <xsl:for-each>
</xsl:template>

Вопрос: как я могу пропустить, если availability < 5?

1 Ответ

0 голосов
/ 24 мая 2018

Вместо того, чтобы думать о «пропуске» элементов, подумайте о том, что вы хотите выбрать, а затем поместите условие для этого в квадратные скобки после выбранных вами узлов

Попробуйте этот шаблон ....

<xsl:template match="some">
    <xsl:for-each select="deep/level[number(@availability) ge 5]">
        <xsl:value-of select="@code, @availability" separator=";"/>
    </xsl:for-each>
</xsl:template>

Обратите внимание, что // будет искать все узлы-потомки, а не только непосредственный дочерний узел, который, я не уверен, вам нужен здесь.

...