mirror of
https://github.com/subsurface/subsurface.git
synced 2024-11-30 22:20:21 +00:00
8f7c9bc7d1
With XSLT we have to be specific if we want to apply cylinder iteration operation to one dive only. Thus using the last dive as reference when printing cylinder header. Signed-off-by: Miika Turkia <miika.turkia@gmail.com>
559 lines
19 KiB
HTML
559 lines
19 KiB
HTML
<?xml version="1.0"?>
|
|
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
|
xmlns:xt="http://www.jclark.com/xt"
|
|
extension-element-prefixes="xt" version="1.0">
|
|
<xsl:strip-space elements="*"/>
|
|
<xsl:param name="units" select="units"/>
|
|
<xsl:output method="text" encoding="UTF-8"/>
|
|
|
|
<xsl:variable name="fs"><xsl:text> </xsl:text></xsl:variable>
|
|
<xsl:variable name="lf"><xsl:text>
|
|
</xsl:text></xsl:variable>
|
|
|
|
<xsl:template match="/divelog/dives">
|
|
<xsl:choose>
|
|
<xsl:when test="$units = 1">
|
|
|
|
<!-- Print beginning of the header -->
|
|
<xsl:value-of select="concat(
|
|
'"dive number"',
|
|
$fs,
|
|
'"date"',
|
|
$fs,
|
|
'"time"',
|
|
$fs,
|
|
'"duration (min)"',
|
|
$fs,
|
|
'"sac (cuft/min)"',
|
|
$fs,
|
|
'"maxdepth (ft)"',
|
|
$fs,
|
|
'"avgdepth (ft)"',
|
|
$fs,
|
|
'"mode"',
|
|
$fs,
|
|
'"airtemp (F)"',
|
|
$fs,
|
|
'"watertemp (F)"',
|
|
$fs)"/>
|
|
|
|
<!-- Print cylinder info according to the amount of cylinders in dive -->
|
|
<xsl:for-each select="dive[position()=last()]/cylinder|trip[position()=last()]/dive[position()=last()]/cylinder">
|
|
<xsl:value-of select="concat(
|
|
'"cylinder size (cuft)"',
|
|
$fs,
|
|
'"startpressure (psi)"',
|
|
$fs,
|
|
'"endpressure (psi)"',
|
|
$fs,
|
|
'"o2 (%)"',
|
|
$fs,
|
|
'"he (%)"',
|
|
$fs)"/>
|
|
</xsl:for-each>
|
|
|
|
<!-- Print rest of the header -->
|
|
<xsl:value-of select="concat(
|
|
'"location"',
|
|
$fs,
|
|
'"gps"',
|
|
$fs,
|
|
'"divemaster"',
|
|
$fs,
|
|
'"buddy"',
|
|
$fs,
|
|
'"suit"',
|
|
$fs,
|
|
'"rating"',
|
|
$fs,
|
|
'"visibility"',
|
|
$fs,
|
|
'"notes"',
|
|
$fs,
|
|
'"weight (lbs)"',
|
|
$fs,
|
|
'"tags"')"/>
|
|
</xsl:when>
|
|
<xsl:otherwise>
|
|
|
|
<!-- Print beginning of the header -->
|
|
<xsl:value-of select="concat(
|
|
'"dive number"',
|
|
$fs,
|
|
'"date"',
|
|
$fs,
|
|
'"time"',
|
|
$fs,
|
|
'"duration (min)"',
|
|
$fs,
|
|
'"sac (l/min)"',
|
|
$fs,
|
|
'"maxdepth (m)"',
|
|
$fs,
|
|
'"avgdepth (m)"',
|
|
$fs,
|
|
'"mode"',
|
|
$fs,
|
|
'"airtemp (C)"',
|
|
$fs,
|
|
'"watertemp (C)"',
|
|
$fs)"/>
|
|
|
|
<!-- Print cylinder info according to the amount of cylinders in dive -->
|
|
<xsl:for-each select="dive[position()=last()]/cylinder|trip[position()=last()]/dive[position()=last()]/cylinder">
|
|
<xsl:value-of select="concat(
|
|
'"cylinder size (l)"',
|
|
$fs,
|
|
'"startpressure (bar)"',
|
|
$fs,
|
|
'"endpressure (bar)"',
|
|
$fs,
|
|
'"o2 (%)"',
|
|
$fs,
|
|
'"he (%)"',
|
|
$fs)"/>
|
|
</xsl:for-each>
|
|
|
|
<!-- Print rest of the header -->
|
|
<xsl:value-of select="concat(
|
|
'"location"',
|
|
$fs,
|
|
'"gps"',
|
|
$fs,
|
|
'"divemaster"',
|
|
$fs,
|
|
'"buddy"',
|
|
$fs,
|
|
'"suit"',
|
|
$fs,
|
|
'"rating"',
|
|
$fs,
|
|
'"visibility"',
|
|
$fs,
|
|
'"notes"',
|
|
$fs,
|
|
'"weight (kg)"',
|
|
$fs,
|
|
'"tags"')"/>
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
<xsl:text>
|
|
</xsl:text>
|
|
<xsl:apply-templates select="dive|trip/dive"/>
|
|
</xsl:template>
|
|
|
|
<xsl:template match="divesites/site/notes"/>
|
|
|
|
<xsl:template match="dive">
|
|
<xsl:text>"</xsl:text>
|
|
<xsl:value-of select="@number"/>
|
|
<xsl:text>"</xsl:text>
|
|
<xsl:value-of select="$fs"/>
|
|
<xsl:text>"</xsl:text>
|
|
<xsl:value-of select="@date"/>
|
|
<xsl:text>"</xsl:text>
|
|
<xsl:value-of select="$fs"/>
|
|
<xsl:text>"</xsl:text>
|
|
<xsl:value-of select="@time"/>
|
|
<xsl:text>"</xsl:text>
|
|
<xsl:value-of select="$fs"/>
|
|
<xsl:text>"</xsl:text>
|
|
<xsl:value-of select="substring-before(@duration, ' ')"/>
|
|
<xsl:text>"</xsl:text>
|
|
<xsl:value-of select="$fs"/>
|
|
<xsl:text>"</xsl:text>
|
|
<xsl:choose>
|
|
<xsl:when test="$units = 1">
|
|
<xsl:value-of select="format-number(substring-before(@sac, ' ') * 0.035315, '#.##')"/>
|
|
</xsl:when>
|
|
<xsl:otherwise>
|
|
<xsl:value-of select="substring-before(@sac, ' ')"/>
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
<xsl:text>"</xsl:text>
|
|
<xsl:choose>
|
|
<xsl:when test="divecomputer[1]/depth/@mean|divecomputer[1]/depth/@max != ''">
|
|
<xsl:apply-templates select="divecomputer[1]/depth"/>
|
|
</xsl:when>
|
|
<xsl:otherwise>
|
|
<xsl:value-of select="$fs"/>
|
|
<xsl:text>""</xsl:text>
|
|
<xsl:value-of select="$fs"/>
|
|
<xsl:text>""</xsl:text>
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
|
|
<!-- Dive mode -->
|
|
<xsl:value-of select="$fs"/>
|
|
<xsl:text>"</xsl:text>
|
|
<xsl:if test="divecomputer[1]/@dctype != ''">
|
|
<xsl:value-of select="divecomputer[1]/@dctype"/>
|
|
</xsl:if>
|
|
<xsl:text>"</xsl:text>
|
|
|
|
<!-- Air temperature -->
|
|
<xsl:choose>
|
|
<xsl:when test="divetemperature/@air != ''">
|
|
<xsl:call-template name="temperature">
|
|
<xsl:with-param name="temp" select="divetemperature/@air"/>
|
|
</xsl:call-template>
|
|
</xsl:when>
|
|
<xsl:when test="divecomputer[1]/temperature/@air != ''">
|
|
<xsl:call-template name="temperature">
|
|
<xsl:with-param name="temp" select="divecomputer[1]/temperature/@air"/>
|
|
</xsl:call-template>
|
|
</xsl:when>
|
|
<xsl:otherwise>
|
|
<!-- empty air temperature -->
|
|
<xsl:value-of select="$fs"/>
|
|
<xsl:text>""</xsl:text>
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
|
|
<!-- Water temperature -->
|
|
<xsl:choose>
|
|
<xsl:when test="divetemperature/@water != ''">
|
|
<xsl:call-template name="temperature">
|
|
<xsl:with-param name="temp" select="divetemperature/@water"/>
|
|
</xsl:call-template>
|
|
</xsl:when>
|
|
<xsl:when test="divecomputer[1]/temperature/@water != ''">
|
|
<xsl:call-template name="temperature">
|
|
<xsl:with-param name="temp" select="divecomputer[1]/temperature/@water"/>
|
|
</xsl:call-template>
|
|
</xsl:when>
|
|
<xsl:otherwise>
|
|
<!-- water temperature -->
|
|
<xsl:value-of select="$fs"/>
|
|
<xsl:text>""</xsl:text>
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
|
|
<xsl:for-each select="cylinder">
|
|
<xsl:choose>
|
|
<xsl:when test="@start|@end != ''">
|
|
<xsl:apply-templates select="."/>
|
|
</xsl:when>
|
|
<xsl:otherwise>
|
|
<xsl:value-of select="$fs"/>
|
|
<xsl:text>"</xsl:text>
|
|
<xsl:choose>
|
|
<xsl:when test="$units = 1">
|
|
<xsl:value-of select="concat(format-number((substring-before(@size, ' ') div 14.7 * 3000) * 0.035315, '#.#'), '')"/>
|
|
</xsl:when>
|
|
<xsl:otherwise>
|
|
<xsl:value-of select="substring-before(@size, ' ')"/>
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
<xsl:text>"</xsl:text>
|
|
<xsl:value-of select="$fs"/>
|
|
<xsl:text>"</xsl:text>
|
|
<xsl:choose>
|
|
<xsl:when test="$units = 1">
|
|
<xsl:choose>
|
|
<xsl:when test="substring-before(../divecomputer[1]/sample[@pressure]/@pressure, ' ') > 0">
|
|
<xsl:value-of select="concat(format-number((substring-before(../divecomputer[1]/sample[@pressure]/@pressure, ' ') * 14.5037738007), '#'), '')"/>
|
|
</xsl:when>
|
|
<xsl:otherwise>
|
|
<xsl:value-of select="''"/>
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
</xsl:when>
|
|
<xsl:otherwise>
|
|
<xsl:value-of select="substring-before(../divecomputer[1]/sample[@pressure]/@pressure, ' ')"/>
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
<xsl:text>"</xsl:text>
|
|
<xsl:value-of select="$fs"/>
|
|
<xsl:text>"</xsl:text>
|
|
<xsl:choose>
|
|
<xsl:when test="$units = 1">
|
|
<xsl:choose>
|
|
<xsl:when test="substring-before(../divecomputer[1]/sample[@pressure][last()]/@pressure, ' ') > 0">
|
|
<xsl:value-of select="concat(format-number((substring-before(../divecomputer[1]/sample[@pressure][last()]/@pressure, ' ') * 14.5037738007), '#'), '')"/>
|
|
</xsl:when>
|
|
<xsl:otherwise>
|
|
<xsl:value-of select="''"/>
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
</xsl:when>
|
|
<xsl:otherwise>
|
|
<xsl:value-of select="substring-before(../divecomputer[1]/sample[@pressure][last()]/@pressure, ' ')"/>
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
<xsl:text>"</xsl:text>
|
|
<xsl:value-of select="$fs"/>
|
|
<xsl:text>"</xsl:text>
|
|
<xsl:value-of select="substring-before(@o2, '%')"/>
|
|
<xsl:text>"</xsl:text>
|
|
<xsl:value-of select="$fs"/>
|
|
<xsl:text>"</xsl:text>
|
|
<xsl:value-of select="substring-before(@he, '%')"/>
|
|
<xsl:text>"</xsl:text>
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
</xsl:for-each>
|
|
|
|
<xsl:choose>
|
|
<!-- Old location format -->
|
|
<xsl:when test="location != ''">
|
|
<xsl:apply-templates select="location"/>
|
|
<xsl:if test="string-length(location) = 0">
|
|
<xsl:value-of select="$fs"/>
|
|
<xsl:text>""</xsl:text>
|
|
<xsl:value-of select="$fs"/>
|
|
<xsl:text>""</xsl:text>
|
|
</xsl:if>
|
|
</xsl:when>
|
|
<!-- Format with dive site managemenet -->
|
|
<xsl:otherwise>
|
|
<xsl:value-of select="$fs"/>
|
|
<xsl:text>"</xsl:text>
|
|
<xsl:if test="string-length(@divesiteid) > 0">
|
|
<xsl:variable name="uuid">
|
|
<xsl:value-of select="@divesiteid" />
|
|
</xsl:variable>
|
|
<xsl:value-of select="//divesites/site[@uuid = $uuid]/@name"/>
|
|
</xsl:if>
|
|
<xsl:text>"</xsl:text>
|
|
<xsl:value-of select="$fs"/>
|
|
<xsl:text>"</xsl:text>
|
|
<xsl:if test="string-length(@divesiteid) > 0">
|
|
<xsl:variable name="uuid">
|
|
<xsl:value-of select="@divesiteid" />
|
|
</xsl:variable>
|
|
<xsl:value-of select="//divesites/site[@uuid = $uuid]/@gps"/>
|
|
</xsl:if>
|
|
<xsl:text>"</xsl:text>
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
<xsl:apply-templates select="divemaster"/>
|
|
<xsl:if test="string-length(divemaster) = 0">
|
|
<xsl:value-of select="$fs"/>
|
|
<xsl:text>""</xsl:text>
|
|
</xsl:if>
|
|
<xsl:apply-templates select="buddy"/>
|
|
<xsl:if test="string-length(buddy) = 0">
|
|
<xsl:value-of select="$fs"/>
|
|
<xsl:text>""</xsl:text>
|
|
</xsl:if>
|
|
<xsl:apply-templates select="suit"/>
|
|
<xsl:if test="string-length(suit) = 0">
|
|
<xsl:value-of select="$fs"/>
|
|
<xsl:text>""</xsl:text>
|
|
</xsl:if>
|
|
<xsl:value-of select="$fs"/>
|
|
<xsl:text>"</xsl:text>
|
|
<xsl:value-of select="@rating"/>
|
|
<xsl:text>"</xsl:text>
|
|
<xsl:value-of select="$fs"/>
|
|
<xsl:text>"</xsl:text>
|
|
<xsl:value-of select="@visibility"/>
|
|
<xsl:text>"</xsl:text>
|
|
<xsl:apply-templates select="notes"/>
|
|
<xsl:if test="string-length(notes) = 0">
|
|
<xsl:value-of select="$fs"/>
|
|
<xsl:text>""</xsl:text>
|
|
</xsl:if>
|
|
|
|
<xsl:variable name="trimmedweightlist">
|
|
<xsl:for-each select="weightsystem">
|
|
<weight>
|
|
<xsl:value-of select="substring-before(@weight, ' ')"/>
|
|
</weight>
|
|
</xsl:for-each>
|
|
</xsl:variable>
|
|
<xsl:value-of select="$fs"/>
|
|
<xsl:text>"</xsl:text>
|
|
<xsl:if test="weightsystem">
|
|
<xsl:choose>
|
|
<xsl:when test="$units = 1">
|
|
<xsl:value-of select="concat(format-number((sum(xt:node-set($trimmedweightlist)/node()) div 0.453592), '#.##'), '')"/>
|
|
</xsl:when>
|
|
<xsl:otherwise>
|
|
<xsl:value-of select="concat(sum(xt:node-set($trimmedweightlist)/node()), '')"/>
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
</xsl:if>
|
|
<xsl:text>"</xsl:text>
|
|
|
|
<xsl:value-of select="$fs"/>
|
|
<xsl:text>"</xsl:text>
|
|
<xsl:call-template name="quote">
|
|
<xsl:with-param name="line" select="substring-before(translate(translate(@tags, $fs, ' '), $lf, ' '), '"')"/>
|
|
<xsl:with-param name="remaining" select="substring-after(translate(translate(@tags, $fs, ' '), $lf, ' '), '"')"/>
|
|
<xsl:with-param name="all" select="@tags"/>
|
|
</xsl:call-template>
|
|
<xsl:text>"</xsl:text>
|
|
|
|
<xsl:text>
|
|
</xsl:text>
|
|
</xsl:template>
|
|
<xsl:template match="divecomputer/depth">
|
|
<xsl:value-of select="$fs"/>
|
|
<xsl:text>"</xsl:text>
|
|
<xsl:choose>
|
|
<xsl:when test="$units = 1">
|
|
<xsl:value-of select="concat(format-number((substring-before(@max, ' ') div 0.3048), '#.##'), '')"/>
|
|
</xsl:when>
|
|
<xsl:otherwise>
|
|
<xsl:value-of select="substring-before(@max, ' ')"/>
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
<xsl:text>"</xsl:text>
|
|
<xsl:value-of select="$fs"/>
|
|
<xsl:text>"</xsl:text>
|
|
<xsl:choose>
|
|
<xsl:when test="$units = 1">
|
|
<xsl:value-of select="concat(format-number((substring-before(@mean, ' ') div 0.3048), '#.##'), '')"/>
|
|
</xsl:when>
|
|
<xsl:otherwise>
|
|
<xsl:value-of select="format-number(substring-before(@mean, ' '), '#.##')"/>
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
<xsl:text>"</xsl:text>
|
|
</xsl:template>
|
|
|
|
<!-- Temperature template -->
|
|
<xsl:template name="temperature">
|
|
<xsl:param name="temp"/>
|
|
|
|
<xsl:value-of select="$fs"/>
|
|
<xsl:text>"</xsl:text>
|
|
<xsl:choose>
|
|
<xsl:when test="$units = 1">
|
|
<xsl:if test="substring-before($temp, ' ') > 0">
|
|
<xsl:value-of select="concat(format-number((substring-before($temp, ' ') * 1.8) + 32, '0.0'), '')"/>
|
|
</xsl:if>
|
|
</xsl:when>
|
|
<xsl:otherwise>
|
|
<xsl:value-of select="substring-before($temp, ' ')"/>
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
<xsl:text>"</xsl:text>
|
|
</xsl:template>
|
|
|
|
<xsl:template match="cylinder">
|
|
<xsl:value-of select="$fs"/>
|
|
<xsl:text>"</xsl:text>
|
|
<xsl:choose>
|
|
<xsl:when test="$units = 1">
|
|
<xsl:value-of select="concat(format-number((substring-before(@size, ' ') div 14.7 * 3000) * 0.035315, '#.#'), '')"/>
|
|
</xsl:when>
|
|
<xsl:otherwise>
|
|
<xsl:value-of select="substring-before(@size, ' ')"/>
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
<xsl:text>"</xsl:text>
|
|
<xsl:value-of select="$fs"/>
|
|
<xsl:text>"</xsl:text>
|
|
<xsl:choose>
|
|
<xsl:when test="$units = 1">
|
|
<xsl:value-of select="concat(format-number((substring-before(@start, ' ') * 14.5037738007), '#'), '')"/>
|
|
</xsl:when>
|
|
<xsl:otherwise>
|
|
<xsl:value-of select="substring-before(@start, ' ')"/>
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
<xsl:text>"</xsl:text>
|
|
<xsl:value-of select="$fs"/>
|
|
<xsl:text>"</xsl:text>
|
|
<xsl:choose>
|
|
<xsl:when test="$units = 1">
|
|
<xsl:value-of select="concat(format-number((substring-before(@end, ' ') * 14.5037738007), '#'), '')"/>
|
|
</xsl:when>
|
|
<xsl:otherwise>
|
|
<xsl:value-of select="substring-before(@end, ' ')"/>
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
<xsl:text>"</xsl:text>
|
|
<xsl:value-of select="$fs"/>
|
|
<xsl:text>"</xsl:text>
|
|
<xsl:value-of select="substring-before(@o2, '%')"/>
|
|
<xsl:text>"</xsl:text>
|
|
<xsl:value-of select="$fs"/>
|
|
<xsl:text>"</xsl:text>
|
|
<xsl:value-of select="substring-before(@he, '%')"/>
|
|
<xsl:text>"</xsl:text>
|
|
</xsl:template>
|
|
|
|
<xsl:template match="location">
|
|
<xsl:value-of select="$fs"/>
|
|
<xsl:text>"</xsl:text>
|
|
<xsl:value-of select="."/>
|
|
<xsl:text>"</xsl:text>
|
|
<xsl:value-of select="$fs"/>
|
|
<xsl:text>"</xsl:text>
|
|
<xsl:value-of select="@gps"/>
|
|
<xsl:text>"</xsl:text>
|
|
</xsl:template>
|
|
<xsl:template match="divemaster">
|
|
<xsl:value-of select="$fs"/>
|
|
<xsl:text>"</xsl:text>
|
|
<xsl:call-template name="quote">
|
|
<xsl:with-param name="line" select="substring-before(translate(translate(., $fs, ' '), $lf, ' '), '"')"/>
|
|
<xsl:with-param name="remaining" select="substring-after(translate(translate(., $fs, ' '), $lf, ' '), '"')"/>
|
|
<xsl:with-param name="all" select="translate(., $fs, ' ')"/>
|
|
</xsl:call-template>
|
|
<xsl:text>"</xsl:text>
|
|
</xsl:template>
|
|
<xsl:template match="buddy">
|
|
<xsl:value-of select="$fs"/>
|
|
<xsl:text>"</xsl:text>
|
|
<xsl:call-template name="quote">
|
|
<xsl:with-param name="line" select="substring-before(translate(translate(., $fs, ' '), $lf, ' '), '"')"/>
|
|
<xsl:with-param name="remaining" select="substring-after(translate(translate(., $fs, ' '), $lf, ' '), '"')"/>
|
|
<xsl:with-param name="all" select="."/>
|
|
</xsl:call-template>
|
|
<xsl:text>"</xsl:text>
|
|
</xsl:template>
|
|
<xsl:template match="suit">
|
|
<xsl:value-of select="$fs"/>
|
|
<xsl:text>"</xsl:text>
|
|
<xsl:call-template name="quote">
|
|
<xsl:with-param name="line" select="substring-before(translate(translate(., $fs, ' '), $lf, ' '), '"')"/>
|
|
<xsl:with-param name="remaining" select="substring-after(translate(translate(., $fs, ' '), $lf, ' '), '"')"/>
|
|
<xsl:with-param name="all" select="."/>
|
|
</xsl:call-template>
|
|
<xsl:text>"</xsl:text>
|
|
</xsl:template>
|
|
<xsl:template match="notes">
|
|
<xsl:value-of select="$fs"/>
|
|
<xsl:text>"</xsl:text>
|
|
<xsl:call-template name="quote">
|
|
<xsl:with-param name="line" select="substring-before(translate(translate(., $fs, ' '), $lf, '\n'), '"')"/>
|
|
<xsl:with-param name="remaining" select="substring-after(translate(translate(., $fs, ' '), $lf, '\n'), '"')"/>
|
|
<xsl:with-param name="all" select="translate(translate(., $fs, ' '), $lf, '\n')"/>
|
|
</xsl:call-template>
|
|
<xsl:text>"</xsl:text>
|
|
</xsl:template>
|
|
|
|
<xsl:template name="quote">
|
|
<xsl:param name="line"/>
|
|
<xsl:param name="remaining"/>
|
|
<xsl:param name="all"/>
|
|
|
|
<xsl:choose>
|
|
<xsl:when test="$line = ''">
|
|
<xsl:value-of select="$all"/>
|
|
</xsl:when>
|
|
<xsl:otherwise>
|
|
<xsl:value-of select="concat($line, '"', '"')"/>
|
|
<xsl:if test="$remaining != ''">
|
|
<xsl:choose>
|
|
<xsl:when test="substring-before($remaining, '"') != ''">
|
|
<xsl:call-template name="quote">
|
|
<xsl:with-param name="line" select="substring-before($remaining, '"')"/>
|
|
<xsl:with-param name="remaining" select="substring-after($remaining, '"')"/>
|
|
<xsl:with-param name="all" select="$remaining"/>
|
|
</xsl:call-template>
|
|
</xsl:when>
|
|
<xsl:otherwise>
|
|
<xsl:value-of select="$remaining" />
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
</xsl:if>
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
</xsl:template>
|
|
</xsl:stylesheet>
|