2015-03-21 4 views
0

Допустим, у меня есть этот XML:Как получить атрибут дочернего элемента на основе атрибута родительского элемента

<data> 
    <options mode="Any Value" currentValue="0"> 
    <option value="0" alias="No Donation"/> 
    </options> 
</data> 

В XSL, как я мог бы написать:

<xsl:value-of select="data/options/option[@value=XXX]/@alias"/> 

где XXX равно значению атрибута «currentValue» его родительского элемента? :

<xsl:value-of select="data/options/@currentValue"/> 

Я в принципе хочу, чтобы объединить эти два заявления в одну, заменив XXX в первой с результатом второго утверждения, но я не уверен, как интегрировать их.

ответ

1

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

<xsl:value-of select="data/options/option[@value=../@currentValue]/@alias"/> 
+0

Отлично, спасибо за вашу помощь! – dlofrodloh