-----Original Message-----
From: owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
[mailto:owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com]On Behalf Of
Martin, Tripp
Sent: Monday, April 07, 2003 10:39 AM
To: 'XSL-List(_at_)lists(_dot_)mulberrytech(_dot_)com'
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(_at_)sil(_dot_)org "He is not here! He is risen!"
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list