[vox-tech] Fwd: Re: complex XML to CSV via XSLT
Bill Kendrick
nbs at sonic.net
Wed Jul 14 20:31:42 PDT 2010
Dylan posted from a non-sub'd addr.
-bill!
----- Forwarded message from vox-tech-bounces at lists.lugod.org -----
Date: Wed, 14 Jul 2010 14:15:52 -0700
From: vox-tech-bounces at lists.lugod.org
Subject: Auto-discard notification
To: vox-tech-owner at lists.lugod.org
The attached message has been automatically discarded.
Date: Wed, 14 Jul 2010 14:10:54 -0700
From: Dylan Beaudette <debeaudette at ucdavis.edu>
Subject: Re: [vox-tech] complex XML to CSV via XSLT
To: Harold Lee <harold at hotelling.net>
Cc: "lugod's technical discussion forum" <vox-tech at lists.lugod.org>
Reply-To: debeaudette at ucdavis.edu
Thanks!
That seemed to do the trick. However, I have a new problem.
The following works when I have a simple XML document with only 1 'pedon'
per 'pedon_collection'
<xsl:template match="pedon_collection/pedon/vegetation">
<xsl:result-document href="vegetation.csv" format="csv">
<xsl:apply-templates select="*" />
</xsl:result-document>
</xsl:template>
<xsl:template match="vegetation_record">
<xsl:apply-templates />
<xsl:if test="following-sibling::*">
<xsl:value-of select="$break" />
</xsl:if>
</xsl:template>
<xsl:template match="vegetation_record/*">
<!-- remove normalize-space() if you want keep white-space at it is -->
<xsl:value-of select="concat($quote, normalize-space(.), $quote)" />
<xsl:if test="following-sibling::*">
<xsl:value-of select="$delim" />
</xsl:if>
</xsl:template>
How can I apply these rules to _each_ 'pedon' in a 'pedon_collection', such
the results are appended to the same file?
Thanks!
Dylan
On Wednesday 14 July 2010, Harold Lee wrote:
> If you want one XSLT program to output multiple files, then use the
> result-document instruction/element:
>
> http://www.w3.org/TR/xslt20/#element-result-document
>
> It allows you to specify all of the formatting options available via
> xsl:output, so you can output text - i.e. CSV - this way.
>
> Harold
>
> On Wed, Jul 14, 2010 at 11:40 AM, Dylan Beaudette
>
> <debeaudette at ucdavis.edu> wrote:
> > Hi,
> >
> > I have an XML file generated via PHP, and containing the contents of
> > several linked tables from a relational database. I would like to
> > generalize some sample XSLT documents to convert the entire file into a
> > sequence of CSV files. The XML file will essentially be exploded back
> > into a set of CSV files, one for each of the original tables. The idea
> > would be to create a couple XSLT files for converting the XML format into
> > several possible output formats.
> >
> > Attached is the XML file, as well as two XSLT files. I suppose that I
> > could loop over the tables of interest, and apply separate XSLT files to
> > the original XML-- saving to different output files each time. It would
> > be more convenient to have all of that logic embedded in the XSLT file--
> > if possible.
> >
> > Any ideas?
> >
> > Cheers,
> > Dylan
> >
> >
> > --
> > Dylan Beaudette
> > Soil Resource Laboratory
> > http://casoilresource.lawr.ucdavis.edu/
> > University of California at Davis
> > 530.754.7341
> >
> > _______________________________________________
> > vox-tech mailing list
> > vox-tech at lists.lugod.org
> > http://lists.lugod.org/mailman/listinfo/vox-tech
--
Dylan Beaudette
Soil Resource Laboratory
http://casoilresource.lawr.ucdavis.edu/
University of California at Davis
530.754.7341
----- End forwarded message -----
--
-bill!
Sent from my computer
More information about the vox-tech
mailing list