xsl-list
[Top] [All Lists]

XPATH | union operator question

2003-12-19 08:05:46
hi,
i have a problem to understand why the following is happening:

###TODO
in the following xml: if the inner @color is there use it, otherwise use the 
outer @color

###XML
<test>
        <line color="outer1">
                <x color="inner1"/>
        </line>
</test>

so i tested the following XSLT:
###XSL
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
        <xsl:template match="/test">
                <out>
                        <xsl:apply-templates/>
                </out>
        </xsl:template>
        <xsl:template match="line">
                <xsl:apply-templates/>
        </xsl:template>
        <xsl:template match="x">
                        <xsl:value-of select="@color | 
parent::line/@color"/><br/>
                        <xsl:value-of select="parent::line/@color | @color 
"/><br/>
                        <xsl:value-of select="(@color | 
parent::line/@color)[1]"/><br/>
                        <xsl:value-of select="(parent::line/@color | @color)[1] 
"/><br/>
        </xsl:template>
</xsl:stylesheet>

###RESULT
<out>
        outer1<br />
        outer1<br />
        outer1<br />
        outer1<br />
</out>

i expected at least one inner1 to show up... 
or i expected "inner1outer1" as a result.

what does the | operator in "@color | parent::line/@color" select? only the 
most specific?

thanks a lot
chris

 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list



<Prev in Thread] Current Thread [Next in Thread>