Subject: Re: [xsl] create xml from incoming xml and load it into a variable From: sudheshna iyer <sudheshnaiyer@xxxxxxxxx> Date: Fri, 25 Jul 2008 13:37:27 -0700 (PDT) |
Thank you. I did this using: <xsl:template match="root"> <xsl:variable name="var"> <xsl:element name="subroot" use-attribute-sets="id"> <xsl:apply-templates select="bbb"/> </xsl:element> </xsl:variable> <!--Traverse the variable--> <xsl:for-each select="xalan:nodeset($var)/root/subroot"> <xsl:key name="ccc" match="subroot" use="11"/> ===> ERROR!!!! </xsl:for-each> </xsl:template> Sample xml: <?xml version="1.0" encoding="UTF-8"?> <root> <subroot id="11111"> <ccc>11</ccc> <ddd>2005-08-26</ddd> <eee>aaaaaaaa</eee> </subroot> <subroot id="11111"> <ccc>22</ccc> <ddd>2005-08-26</ddd> <eee>aaaaaaaa</eee> </subroot> <subroot id="11111"> <ccc>11</ccc> <ddd>2005-08-26</ddd> <eee>aaaaaaaa</eee> </subroot> </root> Inside the loop, I need to use <xsl:key name="ccc" match="subroot" use="ccc"/>. But while transforming, I am receiving the following error: xsl:key is not allowed in this position in the stylesheet! How do I use "key" tag inside a variable which contains xml? I appreciate your help. --- On Fri, 7/25/08, Andrew Welch <andrew.j.welch@xxxxxxxxx> wrote: > From: Andrew Welch <andrew.j.welch@xxxxxxxxx> > Subject: Re: [xsl] create xml from incoming xml and load it into a variable > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Date: Friday, July 25, 2008, 6:02 AM > 2008/7/25 sudheshna iyer <sudheshnaiyer@xxxxxxxxx>: > > How do I create xml from incoming xml and load it into > a variable from xsl? Afterr loading I > > > > have to loop through the variable for doing more xsl > transformations? > > > > My xsl has incoming xml. I have to create another xml > of different format, put it in a variable > > and loop through that variable to apply more xsl > transformations. > > > Do the first pass in a variable: > > <xsl:variable name="first-pass"> > <xsl:apply-templates mode="first-pass"/> > </xsl:variable> > > The do the second pass by calling apply-templates on the > first pass: > > <xsl:apply-templates select="$first-pass"/> > > ...or something similar - you may want to mode the second > pass if it's > less work. Remember to have two root match templates, one > moded, to > ensure do don't get infinite recursion. > > If the first pass could be a one-off batch process, then > you're better > off separating out the transforms than repeatedly doing the > first pass > each time. > > -- > Andrew Welch > http://andrewjwelch.com > Kernow: http://kernowforsaxon.sf.net/
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] create xml from incoming , Andrew Welch | Thread | RE: [xsl] create xml from incoming , Michael Kay |
Re: [xsl] Including an attribute di, Mark Wilson | Date | RE: [xsl] create xml from incoming , Michael Kay |
Month |