O'Reilly logo

XML Hacks by Michael Fitzgerald

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

Convert XML to CSV

Turn your XML into CSV for use by applications that don’t support XML.

In [Hack #21] , you saw how to convert a comma-separated values (CSV) file to XML. This hack does the reverse, turning XML into CSV. This could be useful to you if you want to read XML data into an application that does not directly support XML but does support CSV, such as Excel 2000.

Let’s go back to the output of CSVToXML, the file inventory.xml , after it has been cleaned up by [Hack #38] . Here is a portion of it (Example 3-19).

Example 3-19. A portion of inventory.xml

<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- Generated using Dave Pawson's CSVToXML -->
<Inventory>
 <Line>
  <ItemNumber>line</ItemNumber>
  <Description>desc</Description>
  <Quantity>quan</Quantity>
  <Date>date</Date>
 </Line>
 <Line>
  <ItemNumber>1</ItemNumber>
  <Description>Oak chairs</Description>
  <Quantity>6</Quantity>
  <Date>31 Dec 2004</Date>
 </Line>
 <Line>
  <ItemNumber>2</ItemNumber>
  <Description>Dining tables</Description>
  <Quantity>1</Quantity>
  <Date>31 Dec 2004</Date>
 </Line>
 <Line>
  <ItemNumber>3</ItemNumber>
  <Description>Folding chairs</Description>
  <Quantity>4</Quantity>
  <Date>29 Dec 2004</Date>
 </Line>
 <Line>
  <ItemNumber>4</ItemNumber>
  <Description>Couch</Description>
  <Quantity>1</Quantity>
  <Date>31 Dec 2004</Date>
 </Line>
 ...

You can transform this file with the stylesheet csv.xsl , shown in Example 3-20.

Example 3-20. csv.xsl

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output ...

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