|
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 |