Subject: RE: [xsl] xsl:call-template question From: "Lin, Jessica" <jlin@xxxxxxxxxxx> Date: Wed, 23 Aug 2006 11:40:35 -0700 |
Thanks Gandhi, I missed your reply. I am reading it now. That's really helpful. --- Jessica -----Original Message----- From: Mukul Gandhi [mailto:gandhi.mukul@xxxxxxxxx] Sent: Wednesday, August 23, 2006 11:31 AM To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx Subject: Re: [xsl] xsl:call-template question I gave a solution to this problem two days back, after testing it. Didn't that solve the problem? Haven't recieved any comments from you.. But if you want to write the code yourself, I encourage you to do so. It's worth learning the language. On 8/23/06, Lin, Jessica <jlin@xxxxxxxxxxx> wrote: > Here is the block of xml file. I want to repeat stream twice in > stream_loop and change the SCID to PID with differenct start number by > using xsl:call-template. > > <stream_loop> > <stream_definition> > <stream_type>2</stream_type> > <SCID>100</SCID> > <descriptors_loop_length>compute</descriptors_loop_length> > <descriptor_loop> > <about_descriptor>some description</about_descriptor> > <additional_descriptor>other description</additional_descriptor> > </descriptor_loop> > </stream_definition> > </stream_loop> > > > Here is the expected result: > <stream_loop> > <stream> > <stream_type>2</stream_type> > <PID>4112</SCID> > <ECM>4113</ECM> > <descriptors_loop_length>compute</descriptors_loop_length> > <descriptor_loop> > <about_descriptor>some description</about_descriptor> > <additional_descriptor>other description</additional_descriptor> > </descriptor_loop> > </stream> > <stream> > <stream_type>2</stream_type> > <PID>4114</SCID> > <ECM>4115</ECM> > <descriptors_loop_length>compute</descriptors_loop_length> > <descriptor_loop> > <about_descriptor>some description</about_descriptor> > <additional_descriptor>other description</additional_descriptor> > </descriptor_loop> > </stream> > </stream_loop> > > > > Here is my xslt block: > > > <xsl:template name="repeat twice"> > <xsl:param name="base" select="4112"/> > <xsl:param name="start" select="0"/> > <xsl:choose> > <xsl:when test="$start < 2"> > <stream> > <xsl:for-each select="node()"> > <xsl:choose> > <xsl:when test="local-name(.)='SCID'"> > <PID> > <xsl:value-of select="$base"/> > </PID> > <ECM> > <xsl:value-of select="$base+1"/> > </ECM> > </xsl:when> > <xsl:otherwise> > <xsl:copy-of select="."/> > </xsl:otherwise> > </xsl:choose> > </xsl:for-each> > </stream> > <xsl:call-template name="calculate"> > <xsl:with-param name="base" select="$base+$start*2" /> > <xsl:with-param name="start" select="$start+1"/> > </xsl:call-template> > </xsl:when> > </xsl:choose> > </xsl:template> > > > But the real result is not as what I am expecting. Can anyone tell me > what's wrong in my xslt block? Thank a lot. > > > --- Jessica -- Regards, Mukul Gandhi http://gandhimukul.tripod.com
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] xsl:call-template questio, Mukul Gandhi | Thread | [xsl] XSLDataGrid article on XML.co, Lindsey Simon |
Re: [xsl] xsl:call-template questio, Mukul Gandhi | Date | RE: [xsl] Using attributes with XPa, Jacqueline Radebaugh |
Month |