Subject: RE: naive identity transform question
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Mon, 20 Nov 2006 23:14:11 -0000
|
If it was working, I don't expect you would have posted this.
So it's presumably not working. What are the symptoms? It's much easier to
find a bug if you what the output is.
Michael Kay
http://www.saxonica.com/
> -----Original Message-----
> From: Jon Crump [mailto:jjcrump@xxxxxxxxxxxxxxxx]
> Sent: 20 November 2006 22:20
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: naive identity transform question
>
> I'm sure this is a very straightforward task, but I'm missing
> something fundamental about the identity transformation.
>
> I want to copy an xml file exactly except if nodeX lacks a
> childY write element Y.
>
> The consensus on the identity transform suggested something like this:
>
> xsl file identity.xsl
>
> <xsl:template match="node()|@*">
> <xsl:copy>
> <xsl:apply-templates select="@*|node()"/>
> </xsl:copy>
> </xsl:template>
>
> xsl file intended transformation.xsl
>
> <xsl:import href="identity.xsl"/>
>
> <xsl:template match="//snotes:SourceNote[not(snotes:sourceDate)]">
> <xsl:element
> name="sourceDate"><xsl:text>0000-00-00</xsl:text></xsl:element>
> </xsl:template>
>
> IE: copy all elements complete, except where
> //snotes:SourceNote has no snotes:sourceDate child. In that
> case, write a snotes:sourceDate element with the value 0000-00-00.
>
> Anyone willing to point out the obvious to the naive?
|