Performing Conditional Formatting in XML

March 04, 2014 0 Comments

Conditional formatting refers to the formatting of data based on a specified criteria or condition . For example, while creating a list of famous sportsmen, you might want the names of the sportsmen who play your favorite sport to appear in red. You can specify this condition in your XML document using XSL Transformations (XSLT).

The two XSLT elements that you can use to specify conditions for formatting XML
Documents are:

  1. The if element
  2. The choose element

The if Element

The XSLT if element provides a simple if-then construct. The syntax of the if element
<xsl : if test = “condition”>
[ actions to be performed if the condition is true ]
</xsl : if >

In the preceding syntax, the test attribute specifies the criteria for performing the specified action, and condition specifies a Boolean expression that evaluates to true or false. For  example, to display the names of products priced higher than $100, you can use the following code:

<xsl : if test =”PRICE[ . &gt ; 100]”>
<xsl : value-of select=”PRODUCTNAME” />
</xsl : if>

The choose Element

The choose element enables you to choose from two or more possible courses of action. It enables you to test multiple conditions.
The  choose element must contain one or more when elements. It can contain only one optional otherwise element, which must appear after all the when elements. A choose element with only one when element behaves similar to the if element. With two or more choices, the choose element behaves like an if-then-else or switch-case construct. 
The syntax of the choose element is:
<xsl : choose>
      <xsl : when test=”condition”>
      [action to be taken]
      </xsl : when>
       <xsl : otherwise>
        [action to be taken]
        </xsl : otherwise>
</xsl : choose>

Identifying Comparison and Boolean Operators

The choose and if elements can be used with comparison and Boolean operators to narrow down the conditions based on which the XML document is formatted. The following  table lists the various comparison and Boolean operators.
Equal to
PRICE [ . = 20]
PRODUCTNAME [ . = ‘Mini Bus’]
Not equal to
PRICE [ .  != 20]
PRODUCTNAME [ . != ‘Barbie Doll’ ]
&lt ;
Less than
PRICE [ . &lt ; 20]
&gt ;
Greater than
PRICE [ . &gt ; 20]
&lt ;=
Less than or equal to
PRICE [ . &lt ; = 20]
&gt ;=
Greater than or equal to
PRICE [ . &gt ; = 20]
Logical AND
PRICE [ . &gt 20 and . &lt ; 30]
Logical OR
PRICE [ . = 20 or . = 45]
Negation operator
PRICE [not ( . =30) ]


Some say he’s half man half fish, others say he’s more of a seventy/thirty split. Either way he’s a fishy bastard. Google