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 ...

Get Perl Template Toolkit 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.