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