Subject: Re: [xsl] Generating attributes from the position of an element From: Mukul Gandhi <gandhi.mukul@xxxxxxxxx> Date: Tue, 1 Jun 2010 13:02:32 +0530 |
I would have done this as following, <xsl:template match="node() | @*"> <xsl:copy> <xsl:apply-templates select="node() | @*" /> </xsl:copy> </xsl:template> <xsl:template match="@ID"> <xsl:attribute name="Id"> <xsl:value-of select="count(../preceding-sibling::w) + 1" /> </xsl:attribute> </xsl:template> PS: this is not tested. On Tue, Jun 1, 2010 at 12:22 PM, GC!bor TC3th <roysy@xxxxxxxx> wrote: > Dear All, > > I have the following xml file and wish to generate ID-s based on the > position to the <w> elements with the following XSL file, however, the > end result of the ID attribute is always 1, I have no idea why. > > The xml file is > > <?oxygen RNGSchema="http://www.tei-c.org/release/xml/tei/custom/schema/relaxng/tei_all .rng" > type="xml"?> > <?xml-stylesheet type="text/xsl" href="template.xsl"?> > <text> > B B <w ID=" " >car</w> > B B <w ID=" ">dog</w> > B B <w ID=" ">cat</w> > B B <w ID=" ">house</w> > > </text> > > The XSL file is > > <?xml version="1.0" encoding="UTF-8"?> > <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" > B B xmlns:tei="http://www.tei-c.org/ns/1.0" xmlns="http://www.tei-c.org/ns/1.0" > B B version="2.0" exclude-result-prefixes="tei" > B B xpath-default-namespace="http://www.tei-c.org/ns/1.0" > B B > > > > B B <xsl:template match="@*|node()|comment()|processing-instruction()" > priority="-5"> > B B B B <xsl:copy><xsl:apply-templates > select="@*|node()|comment()|processing-instruction()"/></xsl:copy> > B B B B <xsl:apply-templates select="/text/w/@ID"/> > > B B </xsl:template> > > <xsl:template match="@ID"> > B B B B <xsl:attribute name="Id"> > B B B B B B <countNo><xsl:value-of select="position()"/></countNo> > > B B B B </xsl:attribute> > > B B </xsl:template> > > Result: > > <?xml version="1.0" encoding="UTF-8"?><?oxygen > RNGSchema="http://www.tei-c.org/release/xml/tei/custom/schema/relaxng/tei_all .rng" > type="xml"?><?xml-stylesheet type="text/xsl" > href="template.xsl"?><text> > B B <w Id="1">car</w> > B B <w Id="1">dog</w> > B B <!-- Why does not increment the number of the ID? B --> > <w Id="1">cat</w> > B B <w Id="1">house</w> > > </text> > > Thanks, > > Gabor -- Regards, Mukul Gandhi
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Generating attributes from th, Gábor Tóth | Thread | Re: [xsl] Generating attributes fro, Michael Kay |
[xsl] Generating attributes from th, Gábor Tóth | Date | Re: [xsl] Generating attributes fro, Michael Kay |
Month |