mirror of
https://github.com/subsurface/subsurface.git
synced 2024-11-28 05:00:20 +00:00
XSLT to export dive log in CSV
This implements divelog export into CSV format. This currently supports only metric units and lacks user interface. See #434 Signed-off-by: Miika Turkia <miika.turkia@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
3df506b081
commit
b7940dec5c
1 changed files with 51 additions and 0 deletions
51
xslt/xml2csv.xslt
Normal file
51
xslt/xml2csv.xslt
Normal file
|
@ -0,0 +1,51 @@
|
|||
<?xml version="1.0"?>
|
||||
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
|
||||
<xsl:strip-space elements="*"/>
|
||||
<xsl:output method="text" encoding="UTF-8"/>
|
||||
|
||||
<xsl:variable name="fs">,</xsl:variable>
|
||||
|
||||
<xsl:template match="/divelog/dives">
|
||||
<xsl:value-of select='concat("dive number", $fs, "dive date", $fs, "dive time", $fs, "time", $fs, "depth", $fs, "temperature", $fs, "pressure")'/>
|
||||
<xsl:text>
|
||||
</xsl:text>
|
||||
<xsl:apply-templates select="dive|trip/dive"/>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="dive">
|
||||
<xsl:variable name="number">
|
||||
<xsl:value-of select="@number"/>
|
||||
</xsl:variable>
|
||||
<xsl:variable name="date">
|
||||
<xsl:value-of select="@date"/>
|
||||
</xsl:variable>
|
||||
<xsl:variable name="time">
|
||||
<xsl:value-of select="@time"/>
|
||||
</xsl:variable>
|
||||
<xsl:for-each select="divecomputer/sample|sample">
|
||||
<xsl:value-of select="concat('"', $number, '"')"/>
|
||||
<xsl:value-of select="$fs"/>
|
||||
<xsl:value-of select="concat('"', $date, '"')"/>
|
||||
<xsl:value-of select="$fs"/>
|
||||
<xsl:value-of select="concat('"', $time, '"')"/>
|
||||
<xsl:value-of select="$fs"/>
|
||||
<xsl:value-of select="concat('"', substring-before(@time, ' '), '"')"/>
|
||||
<xsl:value-of select="$fs"/>
|
||||
<xsl:value-of select="concat('"', substring-before(@depth, ' '), '"')"/>
|
||||
|
||||
<xsl:value-of select="$fs"/>
|
||||
<xsl:if test="@temp != ''">
|
||||
<xsl:value-of select="concat('"', substring-before(@temp, ' '), '"')"/>
|
||||
</xsl:if>
|
||||
|
||||
<xsl:value-of select="$fs"/>
|
||||
<xsl:if test="@pressure != ''">
|
||||
<xsl:value-of select="concat('"', substring-before(@pressure, ' '), '"')"/>
|
||||
</xsl:if>
|
||||
|
||||
<xsl:text>
|
||||
</xsl:text>
|
||||
</xsl:for-each>
|
||||
</xsl:template>
|
||||
|
||||
</xsl:stylesheet>
|
Loading…
Reference in a new issue