[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

RE: [xsl] Question about "for-each select"


Subject: RE: [xsl] Question about "for-each select"
From: kakridge@xxxxxxxxxxxxx
Date: Thu, 22 Jan 2004 14:46:09 -0500

You almost had it... and you can do it this way:


<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output method="xml" indent="no"/>
 <xsl:template match="/">
  <document>
   <xsl:for-each select="root/person[gender = 'male' and age = 40]">
    <xsl:sort select="name" order="ascending"/>
    <xsl:value-of select="name"/>
    <xsl:value-of select="' - '"/>
    <xsl:value-of select="age"/>
    <br/>
   </xsl:for-each>
  </document>
 </xsl:template>
</xsl:stylesheet>

-----Original Message-----
From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx
[mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of Bert
Sent: Thursday, January 22, 2004 2:22 PM
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: [xsl] Question about "for-each select"

Hi,

I need some help/advice on the following subject.

>From the xml-file below I want to get the information of all the males
who
are 41.

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="persons.xsl"?>
<root>
 <person>
  <name>Bert</name>
  <gender>male</gender>
  <age>41</age>
 </person>
 <person>
  <name>Elisa</name>
  <gender>female</gender>
  <age>41</age>
 </person>
 <person>
  <name>Carl</name>
  <gender>male</gender>
  <age>40</age>
 </person>
</root>

I use the following template to do that (at least I try to do that):

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output method="xml" indent="no"/>
 <xsl:template match="/">
  <document>
   <xsl:for-each select="root/person[gender = 'male']">
    <xsl:sort select="name" order="ascending"/>
    <xsl:value-of select="name"/>
    <xsl:value-of select="' - '"/>
    <xsl:value-of select="age"/>
    <br/>
   </xsl:for-each>
  </document>
 </xsl:template>
</xsl:stylesheet>

Actually I need a 'for-each'-statement like this:
<xsl:for-each select="root/person[gender = 'male']" AND "root/person[age
=
'41']">

This obviously doesn't work. Can it be done this way and if not, how can
I
achieve my goal?
As you can see help is welcome!

Kind regards,
Bert


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


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



Current Thread