Subject: Re: [xsl] Node position and numbering. From: c p <bugs75il@xxxxxxxxx> Date: Thu, 5 May 2005 11:00:38 -0700 (PDT) |
Spencer, Thats what I trying to explain in my email. That, very unfortunately, I cannot do apply-templates on <step> nodes. The biggest reason for not able to do that is that I could have 100+ different possible child nodes within <service> node and each child node could potentially appear in any order. So I cannot do apply-templates on specific child nodes as I would NOT know what order I need to it in and second I'd have to do 100 apply-templates for each child node. I know its not the best XML design but heck thats what I am handed down and I have to make it work. Not my choice. Thx, C. --- Spencer Tickner <spencertickner@xxxxxxxxx> wrote: > 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 > > __________________________________ Do you Yahoo!? Yahoo! Small Business - Try our new resources site! http://smallbusiness.yahoo.com/resources/
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] Node position and numberi, Michael Kay | Thread | Re: [xsl] Node position and numberi, JBryant |
Re: [xsl] How do I display data one, JBryant | Date | RE: [xsl] Node position and numberi, Michael Kay |
Month |