diff options
Diffstat (limited to 'xslt')
-rw-r--r-- | xslt/commonTemplates.xsl | 44 |
1 files changed, 43 insertions, 1 deletions
diff --git a/xslt/commonTemplates.xsl b/xslt/commonTemplates.xsl index cd26f10ec..82efeacb9 100644 --- a/xslt/commonTemplates.xsl +++ b/xslt/commonTemplates.xsl @@ -286,6 +286,34 @@ <xsl:value-of select="concat($year, '-', $month, '-', $day, ' ', $time)"/> </xsl:template> + <xsl:template name="unquote"> + <xsl:param name="field" /> + <xsl:param name="value" /> + + <xsl:variable name="quote"> + <xsl:choose> + <xsl:when test="$value != ''"> + <xsl:value-of select="'"'"/> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="''"/> + </xsl:otherwise> + </xsl:choose> + </xsl:variable> + + <xsl:choose> + <xsl:when test="substring-before($field, '"') = ''"> + <xsl:value-of select="concat($value, '"', $field)" /> + </xsl:when> + <xsl:otherwise> + <xsl:call-template name="unquote"> + <xsl:with-param name="field" select="substring-after(substring-after($field, '"'), '"')" /> + <xsl:with-param name="value" select="concat($value, $quote, substring-before($field, '"'))" /> + </xsl:call-template> + </xsl:otherwise> + </xsl:choose> + </xsl:template> + <xsl:template name="getFieldByIndex"> <xsl:param name="index"/> <xsl:param name="line"/> @@ -303,7 +331,21 @@ <xsl:when test="substring($line, 1, 1) = '"'"> <xsl:choose> <xsl:when test="substring-before(substring-after($line, '"'), concat('"', $fs)) != ''"> - <xsl:value-of select="substring-before(substring-after($line, '"'), concat('"', $fs))"/> + + + <xsl:choose> + <xsl:when test="substring-before(substring-before(substring-after($line, '"'), concat('"', $fs)), '"') != ''"> + <xsl:call-template name="unquote"> + <xsl:with-param name="field" select="substring-before(substring-after($line, '"'), concat('"', $fs))" /> + <xsl:with-param name="value" select="''" /> + </xsl:call-template> + </xsl:when> + <xsl:otherwise> + + <xsl:value-of select="substring-before(substring-after($line, '"'), concat('"', $fs))"/> + </xsl:otherwise> + </xsl:choose> + </xsl:when> <xsl:otherwise> <xsl:choose> |