Subject: Re: [xsl] Newbie Question: Creating Error Description from Invalid Input From: Richard Lewis <richardlewis@xxxxxxxxxxxxxx> Date: Fri, 13 Oct 2006 15:41:04 +0100 |
On Friday 13 October 2006 15:20, Badari wrote: > I am a newbie to XSL and am hoping that somebody can help me with the > following scenario. I tried to use xsl:variable but was not successful. :( > > I have an "errorDescription" element in the target structure. Depending on > the error condition result on input fields, I have to concatenate the field > names (that are in error) and post them to the errorDescription field. > > How can I do it? Any help is appreciated. > > sample input. > > <request> > <header> > <address1>1234</address1> > <address2></address2> > <address3>3456</address3> > <address4></address4> > </header> > </request> > > If all address elements are expected to have values, and 2nd and 4th don't > have values the output file should look like: > > <response> > <header> > <address1>1234</address1> > <address3>3456</address3> > <errorDescription>Invalid Elements: Address2,Address4</errorDescription > </header> > </response> > <xsl:template match="header"> <header> <xsl:apply-templates mode="valid" /> </header> <errorDescription> <xsl:apply-templates mode="invalid" /> </errorDescription> </xsl:template> <xsl:template match="*" mode="valid"> <xsl:if test="string(.)!=''"> <xsl:element name="name()"> <xsl:apply-templates /> </xsl:element> </xsl:if> </xsl:template> <xsl:template match="*" mode="invalid"> <xsl:if test="string(.)=''"> <xsl:value-of select="name()" /> <xsl:if test="position()!=last()">; </xsl:if> </xsl:if> </xsl:template> I haven't tested it. If there is a XPath expression to match elements by whether they have any text content or not which would be better: <xsl:template match="header"> <header> <xsl:apply-templates select="all address* children with content" /> </header> <xsl:if test="count(all address* children without content) > 0"> <errorDescription> <xsl:value-of select="all address* children without content" /> </errorDescription> </xsl:if> </xsl:template> Any ideas if such an XPath exists? Cheers, Richard -- -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Richard Lewis Sonic Arts Research Archive http://www.sara.uea.ac.uk/ JID: ironchicken@xxxxxxxxxxxxxxx -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Newbie Question: Creating, David Carlisle | Thread | Re: [xsl] Newbie Question: Creating, Wendell Piez |
Re: [xsl] Newbie Question: Creating, David Carlisle | Date | RE: [xsl] Newbie Question: Creating, Michael Kay |
Month |