xsl-list
[Top] [All Lists]

RE: XPATH | union operator question

2003-12-19 08:54:45
The union operator selects both attributes, the value-of instruction
then selects the one that's first in document order. To get the
innermost one, use 

(@a | ../@a)[last()]

Michael Kay

-----Original Message-----
From: owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com 
[mailto:owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com] On Behalf Of 
christof(_dot_)hoeke(_at_)e-7(_dot_)com
Sent: 19 December 2003 15:06
To: XSL-List(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] XPATH | union operator question


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



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



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