[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: position matching
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: 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
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|