This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: back again: child nodes in variable
- From: Mike Brown <mike at skew dot org>
- To: xsl-list at lists dot mulberrytech dot com
- Date: Tue, 4 Jun 2002 12:30:33 -0600 (MDT)
- Subject: Re: [xsl] back again: child nodes in variable
- Reply-to: xsl-list at lists dot mulberrytech dot com
Aniceto López wrote:
> this is part of the xml file:
>
> <mercados>
> <mercado id="MERCADO" descripcion="CONTINUO">
> <subyacentes/>
> </mercado>
> <mercado id="M3" descripcion="MEFF RENTA VARIABLE">
> <subyacentes>
> <subyacente id="20" descripcion="IBEX MINI"/>
> <subyacente id="21" descripcion="IBEX PLUS"/>
> </subyacentes>
> </mercado>
> <mercado id="MERCADO2" descripcion="CONTINUO2">
> <subyacentes/>
> </mercado>
> <mercado id="G1" descripcion="EUREX">
> <subyacentes>
> <subyacente id="10" descripcion="Fut EURO SCHATZ"/>
> <subyacente id="20" descripcion="Fut EURO BOBL"/>
> </subyacentes>
> </mercado>
> </mercados>
>
> first I need to put in a variable the "mercado" nodes getting rid of
> the ones with no "subyacentes"
You want:
<xsl:variable name="conhijos" select="mercados/mercado[not(subyacentes/*)]"/>
> <xsl:for-each select="$conhijos/mercado/subyacentes/subyacente">
> <xsl:value-of select="@descripcion"/>
> </xsl:for-each>
Close. The selected set will contain only 'mercado' elements, not
their parent 'mercados', so when you iterate over them, you'd use
select="$conhijos/subyacentes/subyacente"
- Mike
____________________________________________________________________________
mike j. brown | xml/xslt: http://skew.org/xml/
denver/boulder, colorado, usa | resume: http://skew.org/~mike/resume/
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list