[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
RE: [xsl] Output based on the existence of a particular piece of data in a list
Subject: RE: [xsl] Output based on the existence of a particular piece of data in a list From: "Lars Huttar" <lars_huttar@xxxxxxx> Date: Mon, 7 Apr 2003 12:29:59 -0500 |
> -----Original Message----- > From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx > [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx]On Behalf Of > Martin, Tripp > Sent: Monday, April 07, 2003 10:39 AM > To: 'XSL-List@xxxxxxxxxxxxxxxxxxxxxx' > Subject: [xsl] Output based on the existence of a particular piece of > data in a list > > > I've got the following incoming XML: > > <AC:validateAcctngCodeResponse xmlns:AC="AcctngActivityWS"> > <UserId>U712345</UserId> > <AcctngCodeOut> > <Type>CC</Type> > <Identifier>1234</Identifier> > <Status>OK</Status> > <StatusText>Document has no errors.</StatusText> > </AcctngCodeOut> > <AcctngCodeOut> > <Type>P</Type> > <Identifier>54321</Identifier> > <Status>OK</Status> > <StatusText>Document has no errors.</StatusText> > </AcctngCodeOut> > <AcctngCodeOut> > <Type>O</Type> > <Identifier>78960</Identifier> > <Status>Error</Status> > <StatusText>Order 78960 does not exist</StatusText> > </AcctngCodeOut> > </AC:validateAcctngCodeResponse> > > I need to make my output based on the existence of a <Status> tag with > "Error". So, in the case above I want to have: > <accountcheckreply> > <success>false</success> > <message type="error"> > <code>1</code> > <description>Order 78960 does not exist</description> > </message> > </accountcheckreply> > > Whereas if there were no errors in the incoming document, I would have > simply: > <accountcheckreply> > <success>true</success> > </accountcheckreply> > > I haven't been able to figure out what I need to use to make > this happen. > Can anyone offer a suggestion of where to start? > > Thanks, > Tripp I would start by using a test within the match="/" template such as <xsl:choose> <xsl:when test="AC:validateAcctngCodeResponse/AcctngCodeOut/Status = 'Error'"> which will be true if any of the Status nodes in your structure have the value 'Error'. In that case, apply a template matching the first AcctngCodeOut node whose Status child has the value 'Error': <xsl:apply-templates select="(AC:validateAcctngCodeResponse/AcctngCodeOut [Status = 'Error'])[1]" /> and in that template, create your output <accountcheckreply> element giving the failure details. Otherwise, create a successful <accountcheckreply> element. Lars lars_huttar@xxxxxxx "He is not here! He is risen!" XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Output based on the existence, Martin, Tripp | Thread | RE: [xsl] Output based on the exist, Michael Kay |
[xsl] Strip space in Sablotron keep, Neil Smith | Date | RE: [xsl] Output based on the exist, Avula, Raj |
Month |