XML Editor
Sign up for a WebBoard account Sign Up Keyword Search Search More Options... Options
Chat Rooms Chat Help Help News News Log in to WebBoard Log in Not Logged in
Show tree view Topic
Topic Page 1 2 3 4 5 6 7 8 9 Go to previous topicPrev TopicGo to next topicNext Topic
Postnext
Diana SininaSubject: xsl if, otherwise
Author: Diana Sinina
Date: 20 Apr 2006 04:06 PM
Hello,
I need to write condition if one of the id’s = "" then change text.
I have this code:
<xsl:choose>
<xsl:when test = 'select="Pmnt_Id" =""'>
<td width="125">Trans Id</td></xsl:when>
<xsl:when test = 'select="Transaction_Id" = ""'>
<td width="125">Pmnt Id</td></xsl:when>
</xsl:choose>
It works,
Now, in the case if I get both Id's how can I display both lables?
I tried
to use
<xsl:choose>
<xsl:when test = 'select="Pmnt_Id" =""'>
<td width="125">Trans Id</td></xsl:when>
<xsl:when test = 'select="Transaction_Id" = ""'>
<td width="125">Pmnt Id</td></xsl:when>
<xsl:otherwise><td width="62">Trans Id</td>
<td width="62">Pmnt Id</td>
</xsl:otherwise>
</xsl:choose>

It doesn't work, how can I do that?
Thanks


Postnext
Minollo I.Subject: xsl if, otherwise
Author: Minollo I.
Date: 20 Apr 2006 04:33 PM
http://www.w3.org/TR/xslt#section-Conditional-Processing-with-xsl:choose
"The content of the first, and only the first, xsl:when element whose test is true is instantiated. If no xsl:when is true, the content of the xsl:otherwise element is instantiated. If no xsl:when element is true, and no xsl:otherwise element is present, nothing is created"

You will need to create an <xsl:when> defining the action required to cover the additional condition...

Minollo

Posttop
Sharry StowellSubject: xsl if, otherwise
Author: Sharry Stowell
Date: 20 Apr 2006 04:40 PM
I think I get what your saying:

1) If the 'Payment ID' field is blank, show:
<td width="125">Trans Id</td>

2) If the 'Transaction ID' field is blank, show:
<td width="125">Pmnt Id</td>

3) If both fields are blank, show:
<td width="62">Trans Id</td>
<td width="62">Pmnt Id</td>

Questions are these id's coming from an XML document or used in the querystring?, eg: 'mypage.xml?Pmnt_Id=1234&Transaction_Id='


I would use:
------------------
<xsl:choose>
<xsl:when test='select="Transaction_Id" = "" and select="Pmnt_Id" =""'>
<td width="62">Trans Id</td><td width="62">Pmnt Id</td>
</xsl:when>
<xsl:when test='select="Transaction_Id" = ""'>
<td width="125" colspan="2">Pmnt Id</td>
</xsl:when>
<xsl:when test='select="select="Pmnt_Id" =""'>
<td width="125" colspan="2">Trans Id</td>
</xsl:when>
</xsl:choose>

The otherwise is optional.



Or use string-length() function to check if the numbers of characters is < (&lt;) or > (&gt;) that original string length.

 
Topic Page 1 2 3 4 5 6 7 8 9 Go to previous topicPrev TopicGo to next topicNext Topic
Download A Free Trial of Stylus Studio 6 XML Professional Edition Today! Powered by Stylus Studio, the world's leading XML IDE for XML, XSLT, XQuery, XML Schema, DTD, XPath, WSDL, XHTML, SQL/XML, and XML Mapping!  
go

Log In Options

Site Map | Privacy Policy | Terms of Use | Trademarks
Stylus Scoop XML Newsletter:
W3C Member
Stylus Studio® and DataDirect XQuery ™are from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2016 All Rights Reserved.