O'Reilly logo

Perl Template Toolkit by David Cross, Andy Wardley, Darren Chamberlain

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Chapter 10. XML

XML is becoming one of the most ubiquitous data formats. It is used for both data storage and data exchange. The Template Toolkit can be used to both create XML documents and convert them into other formats.

In this chapter, we’ll take a look at some of the tools that the Template Toolkit provides for working with XML. We show how to populate template variables with fields from XML, how to generate XML, how to process RSS, how to extract information with the Document Object Model (DOM) and XPath, and even how to use XML transforms.

Before we get into some of the more complex tools for processing XML, let’s start simply by looking at Template::Plugin::XML::Simple, which allows us to take a very simple approach to our XML.

Simple XML Processsing

Example 10-1 shows an XML file that contains details of a company’s current inventory of widgets. We have each widget’s part number, name, price, and current stock. This data might be generated by a stock control system.

Example 10-1. Stock control data
<inventory>
  <product id="0050">
    <name>Basic Widget</name>
    <price>49.99</price>
    <stock>2500</stock>
  </product>
  <product id="0051">
    <name>Cheap Widget</name>
    <price>29.99</price>
    <stock>5000</stock>
  </product>
  <product id="0101">
    <name>Super Widget</name>
    <price>99.99</price>
    <stock>1000</stock>
  </product>
  <product id="0102">
    <name>Ultra Widget</name>
    <price>149.99</price>
    <stock>500</stock>
  </product>
</inventory>

Suppose that we want to produce a report based on this data and also ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required