2013-09-03 3 views
0

XML:Как сравнить значение текущего для каждого элемента?

<a>1</a> 
<a>2</a> 
<b>3</b> 
<a>4</a> 
<b>5</b> 

Желаемый результат:

value a 
value a 
value b 
value a  
value b 

XSLT:

<xsl:for-each select="a | b"> 
    <xsl:if test="? = 'a'"> 
    value a 
    </xsl:if> 
    <xsl:if test="? = 'b'"> 
    value b 
    </xsl:if> 
</xsl:for-each> 

Как сравнить значение текущего элемента в строке <xsl:if test="? = 'a'"> и <xsl:if test="? = 'b'">?

+1

Я думаю, что если вы измените свое условие на '', это может сработать. У меня нет инструмента для проверки этого прямо сейчас ... – FrustratedWithFormsDesigner

ответ

1

Вам нужно name(), но это странный способ обойти это. Из того, что вы разместили, вы просто хотите вывести имена узлов. В этом случае:

<xsl:apply-templates select='a|b' /> 

<xsl:template match='a|b'> 
    value <xsl:value-of select='name()' /> 
</xsl:template> 
+1

'name (.)' Это то, что мне нужно, спасибо за ваш ответ. –

Смежные вопросы