Java Integration
Transform Anything with Java
Conditional Logic using XSLT
Example for IF clause in XSLT
XML Input File
<?xml version="1.0" encoding="UTF-8"?>
<GolfCountryClub>
<GolfCourse NumberOfHoles="18">
<Name>Bird's Nest Course</Name>
<Yardage>7125</Yardage>
<Par>72</Par>
<Handicap>74.6</Handicap>
<Slope>138</Slope>
</GolfCourse>
<GolfCourse NumberOfHoles="18">
<Name>Eagle's Nest Course</Name>
<Yardage>7198</Yardage>
<Par>72</Par>
<Handicap>73.5</Handicap>
<Slope>136</Slope>
</GolfCourse>
<Member handicap="20">
<RegularMember>
<FirstName>Keith</FirstName>
<LastName>Chong</LastName>
<MembershipExpiry>2010-10-31</MembershipExpiry>
</RegularMember>
</Member>
<Member handicap="0">
<ExclusiveMember>
<FirstName>James</FirstName>
<MiddleName>Lion</MiddleName>
<LastName>Chan</LastName>
<ValetParkingID>124</ValetParkingID>
<LockerNumber>10</LockerNumber>
</ExclusiveMember>
</Member>
<Member handicap="25">
<RestrictedMember>
<FirstName>Allan</FirstName>
<LastName>Chong</LastName>
<MembershipExpiry>2010-10-31</MembershipExpiry>
<LimitedPlay>Weekend Only</LimitedPlay>
</RestrictedMember>
</Member>
<Member handicap="10">
<RegularMember>
<FirstName>Murray</FirstName>
<MiddleName>Izzun</MiddleName>
<LastName>Beaton</LastName>
<MembershipExpiry>2010-09-30</MembershipExpiry>
</RegularMember>
</Member>
<Employee>
<FirstName>Craig</FirstName>
<LastName>Salter</LastName>
<EmployeeNumber>12463</EmployeeNumber>
</Employee>
<Employee>
<FirstName>Ernest</FirstName>
<LastName>Mah</LastName>
<EmployeeNumber>15234</EmployeeNumber>
</Employee>
<ProShop>
<GolfClub>
<ManufacturerName>Tailor Built</ManufacturerName>
<Quantity>20</Quantity>
<ClubKind>Driver</ClubKind>
<Loft>10.5 Degrees</Loft>
<Shaft>Stiff</Shaft>
</GolfClub>
<GolfClub>
<ManufacturerName>Clever Plains</ManufacturerName>
<Quantity>5</Quantity>
<ClubKind>Wedge</ClubKind>
<Loft>60 Degrees</Loft>
<Shaft>Regular</Shaft>
</GolfClub>
<BoxOfBalls>
<ManufacturerName>A-Subject</ManufacturerName>
<Quantity>20</Quantity>
<ProductDetails>Pos. A High Spin/12</ProductDetails>
</BoxOfBalls>
</ProShop>
</GolfCountryClub>
XSLT File
<?xml version="1.0"?>
<xsl:stylesheet xmlns="http://www.w3.org/1999/xhtml" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/">
<xsl:for-each select="/GolfCountryClub/GolfCourse ">
<xsl:if test="@NumberOfHoles = '18'">
<xsl:text> Name of Hole 18 is </xsl:text>
<xsl:value-of select="Name"/>
<br/>
<xsl:text>Yardage of Hole 18 is </xsl:text>
<xsl:value-of select="Yardage"/>
</xsl:if>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
Output
<?xml version="1.0" encoding="UTF-8"?>
Name of Hole 18 is Bird's Nest Course
Yardage of Hole 18 is 7125
Name of Hole 18 is Eagle's Nest Course
Yardage of Hole 18 is 7198
Using XSLT Choose When
Input XML
<?xml version="1.0" encoding="UTF-8"?>
<Items>
<Item available="no">
<Name>iPhone6</Name>
<Serial>123</Serial>
<Color>Black</Color>
<Price>700</Price>
</Item>
<Item available="no">
<Name>iPhone6</Name>
<Serial>124</Serial>
<Color>Black</Color>
<Price>700</Price>
</Item>
<Item available="yes">
<Name>iPhone5s</Name>
<Serial>124</Serial>
<Color>Black</Color>
<Price>600</Price>
</Item>
<Item available="yes">
<Name>iPhone5</Name>
<Serial>124</Serial>
<Color>White</Color>
<Price>450</Price>
</Item>
</Items>
XSLT File
<?xml version="1.0"?>
<xsl:stylesheet xmlns="http://www.w3.org/1999/xhtml" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/Items/Item">
<xsl:choose>
<xsl:when test="@available='yes'">
<xsl:value-of select="Name"/>
<xsl:value-of select="Color"/>
<xsl:text> is Available for price </xsl:text>
<xsl:value-of select="Price"/>
</xsl:when>
<xsl:when test="@available='no'">
<xsl:value-of select="Name"/>
<xsl:value-of select="Color"/>
<xsl:text> is Not Available for price </xsl:text>
<xsl:value-of select="Price"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="Name"/>
<xsl:value-of select="Color"/>
<xsl:text> is Applicable for price </xsl:text>
<xsl:value-of select="Price"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>
Output File
<?xml version="1.0" encoding="UTF-8"?>
iPhone6Black is Not Available for price 700
iPhone6Black is Not Available for price 700
iPhone5sBlack is Available for price 600
iPhone5White is Available for price 450