2015-11-27 4 views
0

у меня есть XML:Xsl if утверждение внутри xsl для каждого утверждения: как?

<newsletter country="nl"> 
<shop id="1"> 
<primaryOffer type="hunt"> 

Теперь у меня есть XSLT:

<xsl:for-each select="//shop[@id='1']"> 
< do A> 
</xsl:for-each> 

теперь я ищу, если заявление, внутри XSL для каждого оператора, в котором говорится: если тип primaryOffer = "hunt" do A, else do B

Как это сделать?

Я попытался

<xsl:for-each select="//shop[@id='1']"> 
<xsl:if select="//primaryOffer[@type='hunt']">A</xsl:if> 
B 
</xsl:for-each> 

Вот XML: http://frisokc111.111.axc.nl/feed/nl.xml

Спасибо!

+2

Кемп, Вы должны узнать о '' инструкции. На самом деле, не нужны условия XSLT - читайте и узнайте о директиве '' –

+1

Следуя советам Димитрива, вы можете воспользоваться этими двумя вопросами SO: (1) [Как реализовать инструкцию if-else в XSLT?] (http://stackoverflow.com/q/13622338/290085) и (2) [различия между for-each и шаблонами в xsl?] (http://stackoverflow.com/q/4460232/290085) – kjhughes

ответ

1

Понял, спасибо

<xsl:choose> 
    <xsl:when test="../primaryOffer[@type = 'hunt']"> 
     do a 
    </xsl:when> 
    <xsl:otherwise> 
     do b 
    </xsl:otherwise> 
</xsl:choose> 
Смежные вопросы