Transforming XML with XSLT
Problem
You need to make significant changes to the output format.
Solution
Use XSLT; it is fairly easy to use and does not require writing much Java.
Discussion
XSLT, or Extensible Style Language for Transformations, allows you a great deal of control over the output format. It can be used to change an XML file from one DTD into another, as might be needed in a business-to-business (B2B) application where information is passed from one industry-standard DTD to a site that uses another. It can also be used to render XML into another format such as HTML. Think of XSLT as a scripting language for transforming XML.
You need a set of classes called an XSLT
processor
. One
freely available XSLT processor is the
Apache project’s Xalan
(formerly available from Lotus/IBM as the Lotus XSL processor). To
use this, you create an XSL processor by calling the factory method
getProcessor( )
,
then call its parse method passing in two
XSLTInputSources
(one for the XML document and one for the XSL stylesheet) and one
XSLTResultTarget
for the output file.
Assume you have a file of people’s
names,
addresses, and so on, stored in an XML document such as the file
people.xml
, shown in Example 21-1.
Example 21-1. people.xml
<?xml version="1.0"?> <people> <person> <name>Ian Darwin</name> <email>ian@darwinsys.com</email> <country>Canada</country> </person> <person> <name>Another Darwin</name> <email type="intranet">ad</email> <country>Canada</country> </person> </people>
You ...
Get Java Cookbook now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.