1 <?xml version="1.0" encoding="utf-8"?>
\r
2 <!-- Copyright 2004 by Laszlo Systems, Inc.
\r
3 Released under the Artistic License.
\r
4 Written by Oliver Steele.
\r
5 http://osteele.com/sources/xslt/htm2db/
\r
9 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
\r
10 xmlns:exslt="http://exslt.org/common"
\r
11 xmlns:math="http://exslt.org/math"
\r
12 xmlns:xalan="http://xml.apache.org/xalan"
\r
13 xmlns:html2db="urn:html2db"
\r
14 xmlns:db="urn:docbook"
\r
15 xmlns:h="http://www.w3.org/1999/xhtml"
\r
16 exclude-result-prefixes="db exslt h html2db math xalan"
\r
17 extension-element-prefixes="html2db"
\r
20 <!-- Wrap with ", and backslash " and \ -->
\r
21 <xsl:template name="quote">
\r
22 <xsl:param name="str" select="string(.)"/>
\r
23 <xsl:param name="lquo" select="'"'"/>
\r
24 <xsl:param name="rquo" select="'"'"/>
\r
26 <xsl:variable name="qpos" select="string-length(substring-before($str, '"'))"/>
\r
28 <xsl:variable name="bspos" select="string-length(substring-before($str, '\\'))"/>
\r
29 <!-- first " or \ -->
\r
30 <xsl:variable name="pos">
\r
32 <xsl:when test="$qpos=0"><xsl:value-of select="$bspos"/></xsl:when>
\r
33 <xsl:when test="$bspos=0"><xsl:value-of select="$qpos"/></xsl:when>
\r
34 <xsl:when test="$qpos<$bspos">
\r
35 <xsl:value-of select="$qpos"/>
\r
37 <xsl:when test="$bspos">
\r
38 <xsl:value-of select="$bspos"/>
\r
42 <xsl:value-of select="$lquo"/>
\r
44 <xsl:when test="$pos!=0">
\r
45 <xsl:value-of select="substring($str, 1, $pos)"/>
\r
46 <xsl:text>\</xsl:text>
\r
47 <xsl:value-of select="substring($str, $pos + 1, 1)"/>
\r
48 <xsl:call-template name="quote">
\r
49 <xsl:with-param name="str" select="substring($str, $pos + 2)"/>
\r
50 <xsl:with-param name="lquo" select="''"/>
\r
51 <xsl:with-param name="rquo" select="''"/>
\r
52 </xsl:call-template>
\r
55 <xsl:value-of select="$str"/>
\r
58 <xsl:value-of select="$rquo"/>
\r