Subject: Re: [xsl] Group problem with blank elements From: Mukul Gandhi <mukul_gandhi@xxxxxxxxx> Date: Fri, 1 Jul 2005 01:06:49 -0700 (PDT) |
Hi Prakash, (IMHO) XPath expressions have unique nature. Sometimes they seem right, but they don't work. But with the XSLT stylesheet you posted, both Xalan-J 2.6 and Saxon 6.5.3 are giving error. As a wierd thought, I think the XML parser I have does'nt work properly. Regards, Mukul --- omprakash.v@xxxxxxxxxxxxx wrote: > > > > > > Hi, > Works fine for me. Iam using xalan. > > Cheers, > prakash > > > > > > > > Mukul Gandhi > > > <mukul_gandhi@ya To: > xsl-list@xxxxxxxxxxxxxxxxxxxxxx > > hoo.com> cc: > (bcc: omprakash.v/Polaris) > > > Subject: Re: [xsl] Group problem with blank elements > > 07/01/2005 11:38 > > > AM > > > Please respond > > > to xsl-list > > > > > > > > > > > > > I am sorry.. > > The real error is > ----------------- > Error at xsl:apply-templates on line 67 of > file:/C:/xml/xsleg/xslt/posgroup1.xsl > : > Invalid element within xsl:apply-templates: > Error at xsl:param on line 69 of > file:/C:/xml/xsleg/xslt/posgroup1.xsl: > xsl:param must be immediately within a template, > function or stylesheet > Error at xsl:param on line 69 of > file:/C:/xml/xsleg/xslt/posgroup1.xsl: > Variable is already declared in this template > Error at xsl:param on line 69 of > file:/C:/xml/xsleg/xslt/posgroup1.xsl: > xsl:param must be the first element within a > template > Transformation failed: Failed to compile stylesheet. > 4 > errors detected. > Press any key to continue . . . > > Regards, > Mukul > > --- Mukul Gandhi <mukul_gandhi@xxxxxxxxx> wrote: > > > Hi Prakash, > > Your stylesheet look fine.. But when I run it > with > > Saxon 6.5.3, I get an error - > > > > Error on line 2 column 6 of > > file:/C:/xml/xsleg/xslt/posgroup1.xsl: > > Error reported by XML parser: The processing > > instruction target matching "[xX] > > [mM][lL]" is not allowed. > > Transformation failed: Failed to parse stylesheet > > > > Regards, > > Mukul > > > > --- omprakash.v@xxxxxxxxxxxxx wrote: > > > > > > > > > > > > > > > > > > > > Hi, > > > > > > The following xslt 1.0 stylesheet should work > with > > a > > > little tweaking. If > > > there is an easier way to do this in 1.0, Iam > not > > > aware of it. probably > > > much easier in xslt 2.0. > > > > > > <?xml version="1.0" encoding="UTF-8"?> > > > <xsl:stylesheet version="1.0" > > > > xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> > > > > > > <xsl:output method="xml" indent="yes" /> > > > > > > > > > <xsl:template match="/root"> > > > > > > <xsl:apply-templates > select="statement-message[1]" > > > mode="wrap"/> > > > > > > </xsl:template> > > > > > > <xsl:template match="statement-message" > > mode="wrap"> > > > > > > > > > <xsl:apply-templates > > > > > > select="following-sibling::*[1][self::statement-message][not(string-length(following-sibling::*[self::statement-message]) > > > > = 0)][1]" mode="nowrap"> > > > <xsl:with-param name="parent" select="."/> > > > <xsl:with-param name="dotag" select="0"/> > > > </xsl:apply-templates> > > > > > > <!-- > > > <xsl:apply-templates > > > > > > select="following-sibling::*[1][self::statement-message]" > > > mode="nowrap"/> > > > --> > > > > > > > > > </xsl:template> > > > > > > <xsl:template match="statement-message[. = '']"> > > > > > > <xsl:value-of select="'here'"/> > > > > > > <xsl:apply-templates > > > > > > select="following-sibling::*[1][self::statement-message]" > > > mode="wrap"/> > > > </xsl:template> > > > > > > > > > > > > <xsl:template match="statement-message" > > > mode="nowrap"> > > > <xsl:param name="parent"/> > > > <xsl:param name="dotag"/> > > > > > > > > > <xsl:choose> > > > <xsl:when test="number($dotag) = 0"> > > > > > > <statement-message> > > > <xsl:value-of select="$parent"/> > > > <xsl:value-of select="."/> > > > > > > <xsl:choose> > > > <!-- > > > <xsl:when > > > > > > test="not(string-length(following-sibling::*[self::statement-message][1]) > > > = > > > 0)"> > > > --> > > > <xsl:when test="not(string-length(.) = 0)"> > > > > > > > > > <xsl:apply-templates > > > > > > select="following-sibling::*[self::statement-message][not(string-length(following-sibling::*[self::statement-message]) > > > > = 0)][1]" mode="nowrap"> > > > <xsl:with-param name="parent" select="."/> > > > <xsl:param name="dotag" select="1"/> > > > </xsl:apply-templates> > > > > > > </xsl:when> > > > <xsl:otherwise> > > > > > > <xsl:apply-templates > select="statement-message"/> > > > </xsl:otherwise> > > > </xsl:choose> > > > > > > </statement-message> > > > </xsl:when> > > > > > > > > > <xsl:otherwise> > > > > > > <xsl:value-of select="."/> > > > <xsl:apply-templates > > > > > > select="following-sibling::*[self::statement-message][not(string-length(following-sibling::*[self::statement-message]) > > > > = 0)][1]" mode="nowrap"/> > > > </xsl:otherwise> > > > </xsl:choose> > > > > > > <xsl:choose> > > > <xsl:when > > > > > > test="string-length(following-sibling::*[self::statement-message][1]) > > > = 0"> > > > > > > <xsl:apply-templates > > > > > > select="following-sibling::*[1][self::statement-message]" > > > mode="wrap"/> > > > > > > </xsl:when> > > > </xsl:choose> > > > > > > > > > > > > <!-- > > > <xsl:apply-templates > > > > > > select="following-sibling::*[self::statement-message][not(string-length(following-sibling::*[self::statement-message]) > > > > = 0)][1]" mode="wrap"/> > > > --> > > > > > > > > > </xsl:template> > > > > > > <xsl:template match="statement-message[. = '']"> > > > > > > <xsl:value-of select="'here'"/> > > > > > > <xsl:apply-templates > > > > > > select="following-sibling::*[1][self::statement-message]" > > > mode="wrap"/> > > > > > > </xsl:template> > > > > > > > > > </xsl:stylesheet> > > > > > > > > > Hope this helps. > > > > > > Cheers, > > > prakash > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > "Ed Yau" > > > > > > > > > > > > > <eyau@vstrading. > To: > > > > > <xsl-list@xxxxxxxxxxxxxxxxxxxxxx> > > > > > > > > co.uk> > cc: > > > > > (bcc: omprakash.v/Polaris) > > > > > > > > > > > Subject: [xsl] Group problem with blank elements > > > > > > > > 06/30/2005 11:00 > > > > > > > > > > > > > PM > > > > > > > > > > > > > Please respond > > > > > > > > > > > > > to xsl-list > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > Hiya, > > > > > > Having loads of trouble with this. On the face > of > > > it a really easy > > > problem. > > > I have a bunch of elements like so: > > > > > > <statement-message>Your account is now seriously > > in > > > arrears. > > > To</statement-message> > > > > > > <statement-message>avoid further action a > payment > > > of</statement-message> > > > > > > <statement-message>$82.00 is required > immediately. > > > Any</statement-message> > > > > > > <statement-message>purchases will now be > > > declined.</statement-message> > > > > > > <statement-message> > > > </statement-message> > > > > > > <statement-message> More text > > </statement-message> > > > > > > <statement-message> > > > </statement-message> > > > > > > <statement-message> > > > </statement-message> > > > > > > <statement-message> > > > </statement-message> > > > > > > I want to strip out the empty tags and merge > > > adjacent elements as > > > follows: > > > > > > <statement-message> Your account is now > seriously > > in > > > arrears. To avoid > > > further action a payment of > > > 82.00 is required immediately. Any purchases > will > > > now be > > > declined.</statement-message> > > > > > > <statement-message> More text > > </statement-message> > > > > > > My code at the moment is: > > > <xsl:for-each-group select="statement-message" > > > > > > group-ending-with="statement-message[string-length(normalize-space(follo > > > wing-sibling::statement-message[1]))=0]"> > > > <statement-message> > > > <xsl:value-of > > select="."/> > > > </statement-message> > > > </xsl:for-each-group> > > > > > > My understanding of this is that it should start > > > grouping from the 1st > > > statement message, with the groups ending as > soon > > as > > > an empty element is > > > reached. The empty tags at the end would still > be > > > there, but at least > > > it should do the merge. However, the result > looks > > > like: > > > > > > <statement-message>Your account is now > > > seriously in arrears. > > > To</statement-message> > > > <statement-message> > > > </statement-message> > > > <statement-message> More text > > > </statement-message> > > > <statement-message> > > > </statement-message> > > > <statement-message> > > > </statement-message> > > > <statement-message> > > > </statement-message> > > > > > > So where am I going wrong? > > > > > > Ed > > > > > > > > > > > > > > > > > > This e-Mail may contain proprietary and > > confidential > > > information and is sent for the intended > > > recipient(s) only. > > > If by an addressing or transmission error this > > mail > > > has been misdirected to you, you are requested > to > > > delete this mail immediately. > > > You are also hereby notified that any use, any > > form > > > of reproduction, dissemination, copying, > > disclosure, > > > modification, > > > distribution and/or publication of this e-mail > > > message, contents or its attachment other than > by > > > its intended recipient/s is strictly prohibited. > > > > > > Visit Us at http://www.polaris.co.in > > > > > > > > > > > > > > > > __________________________________ > > Yahoo! Mail > > Stay connected, organized, and protected. Take the > > tour: > > http://tour.mail.yahoo.com/mailtour.html > > > > > > > > > ____________________________________________________ > Yahoo! Sports > Rekindle the Rivalries. Sign up for Fantasy Football > http://football.fantasysports.yahoo.com > > > > > > This e-Mail may contain proprietary and confidential > information and is sent for the intended > recipient(s) only. > If by an addressing or transmission error this mail > has been misdirected to you, you are requested to > delete this mail immediately. > You are also hereby notified that any use, any form > of reproduction, dissemination, copying, disclosure, > modification, > distribution and/or publication of this e-mail > message, contents or its attachment other than by > its intended recipient/s is strictly prohibited. > > Visit Us at http://www.polaris.co.in > > __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Group problem with blank , omprakash . v | Thread | Re: [xsl] Group problem with blank , David Carlisle |
Re: [xsl] Group problem with blank , omprakash . v | Date | Re: [xsl] XSL related activities at, Mukul Gandhi |
Month |