Subject: RE: [xsl] position matching From: "Michael Kay" <mike@xxxxxxxxxxxx> Date: Wed, 26 Nov 2008 11:01:50 -0000 |
Two obvious errors, excluding typos: (1) target[position() > 2] should be target[position() > 1] (2) preceding-sibling::source[position()] - you've forgotten that the context inside a predicate changes. You need to bind position() to a variable p outside the expression and then use preceding-sibling::source[$p]. Or in fact I suspect it should be (preceding-sibling::source)[$p] because you want them numbered in forwards rather than reverse order. Michael Kay http://www.saxonica.com/ > -----Original Message----- > From: Ganesh Babu N [mailto:nbabuganesh@xxxxxxxxx] > Sent: 26 November 2008 10:52 > To: XSL > Subject: [xsl] position matching > > Hai All, > > I am working on automatic XSLT generation project and here is > the mapping table. > > Here is my XML file: > <map> > <source>article</source> > <source>@docsubtype</source> > <source>@version</source> > <target>article</target> > <target>@article-type</target> > <target>@dtd-version</target> > </map> > > My stylesheet: > > <xsl:template match="map"> > <xsl:if test="count(child::source) = count(child::target) and > count(child::*) != 2"> > <mac:template match="{source[1]}"> > <mac:element name="{target[1]}"> > <xsl:for-each select="target[position() > 2"> <mac:attribute > name="substring-after({target},'@')"><mac:value-of > select="preceding-sibling::source[position()]"/></mac:attribute> > <xsl:for-each> > <mac:apply-templates select="@*|node()"/> </mac:element> > </mac:template> </xsl:if> </xsl:template> > > Expected Output: > > <xsl:template match="article> > <xsl:element name="article"> > <xsl:attribute name="article-type"><xsl:value-of > select="@docsubtype"></xsl:attribute> > <xsl:attribute name="@dtd-version"><xsl:value-of > select="@version"></xsl:attribute> > </xsl:element> > <xsl:template> > > > I am not getting the desired result. Please let me know where > I am going wrong. > > Regards, > Ganesh
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] position matching, Ganesh Babu N | Thread | Re: [xsl] position matching, Ganesh Babu N |
[xsl] position matching, Ganesh Babu N | Date | [xsl] Filtering sequences of atomic, Christoph LANGE |
Month |