[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: Node position and numbering.

Subject: Re: Node position and numbering.
From: Spencer Tickner <spencertickner@xxxxxxxxx>
Date: Thu, 5 May 2005 10:43:23 -0700
xsl node position
Hi,

I tried your above example with the match="service" followed by
match="step" and got the desired output? Give this a try maybe it'll
help:

<?xml version='1.0'?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="service">
	<xsl:apply-templates select="step"/>
</xsl:template>

<xsl:template match="step">
	<xsl:value-of select="concat(position(), '. ',
normalize-space(text()))"/><br/>
</xsl:template>
</xsl:stylesheet>

output:

1. Go to File menu
2. Select Print
3. Click Print

Sounds like you've tried this already, I know I've had this problem
before and it has to do with whitespace nodes, either or give it a
shot.

On 5/5/05, c p <bugs75il@xxxxxxxxx> wrote:
> Hello all,
>
> I have following XML:
> -----------------------------------------
>
> <?xml version="1.0" encoding="UTF-8"?>
> <service>
>     <title>Printing the Page</title>
>     <somenode>node content might go here.</somenode>
>     <step>Go to File menu</step>
>     <step>Select Print</step>
>     <step>Click Print</step>
>     <somenode>you are all done.</somenode>
> </service>
>
> -----------------------------------------
> As you can see the XML has a <service> node with a
> whole bunch of other child nodes.  Out of all the
> child nodes, I am interested in getting the position
> for <step> nodes only.  Its pretty simple but there's
> a twist.  In the example above if I did
> <xsl:apply-templates match="service"/>  and then for
> each child node I did a position() then it would give
> me numbers 2,4,and 5 for the <step> nodes.  However
> thats not what I want.  I want it to give me numbers
> 1,2,3 for the <step> nodes.  The way I can get that is
> by doing <xsl:apply-templates match="service/step"/>,
> unfortunately due to the complexity of my XSL and XML
> structure I cannot do that.  Is there a way to achieve
> this so I can get an output that will look like this:
>
> ---------------------------------------------
> 1. Go to File menu
> 2. Select Print
> 3. Click Print
> ---------------------------------------------
>
> Note:  Its not always guaranteed that the first <step>
> node will start after <title> node or any other node.
> It could be random.
>
> Any help would be appreciated.
>
> Thx,
> C
>
> __________________________________________________
> Do You Yahoo!?
> Tired of spam?  Yahoo! Mail has the best spam protection around
> http://mail.yahoo.com

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.