Gå til innhold

Anbefalte innlegg

Jeg har en xml generert av et system, hvor brukerne selv i stor grad står for formatering. Det vil si, de kan da legge inn linjeskift (en tom node) inni en p-node.

 

Jeg skal forsøke å genere sql av xml'en, men ordet it's learning (som det het i gamledager visstnok) ødelegger, iallfall de 18 gangene det opptrer inni en p, men etter en br/

 

Min rekursive funksjon fanger ikke den opp. Hvordan kan jeg endre det?

 

Output: http://hvalross.hib.no/webmaster/studiekatalog/

xsl: http://hvalross.hib.no/webmaster/studiekatalog/xsl/studie.xsl

 

Overskriftene i template escapeQuotes er for å se hvilken del av malen er det som kalles.

 

En p kan bestå av tekst, em, strong og list.

<xsl:template name="escapeQuotes">
<xsl:param name="txt"/>
<!--  Escape with slash  -->
<xsl:variable name="backSlashQuote">\'</xsl:variable>
<!--  MsSql escape  -->
<!--
  <xsl:variable name="backSlashQuote">\'</xsl:variable>
-->
<xsl:variable name="singleQuote">'</xsl:variable>
<xsl:choose>
<xsl:when test="string-length($txt) = 0">
<h1>do nothing = 0</h1>
</xsl:when>
<xsl:when test="contains($txt, $singleQuote)">
<h1>inneholder singlequote</h1>
<xsl:value-of disable-output-escaping="yes" select="concat(substring-before($txt, $singleQuote), $backSlashQuote)"/>
<xsl:call-template name="escapeQuotes">
<h1>rekursiv</h1>
<xsl:with-param name="txt" select="substring-after($txt, $singleQuote)"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<h1>otherwise</h1>
<xsl:value-of disable-output-escaping="yes" select="$txt"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>

Jeg kaller den for p'en her:

<xsl:template match="p">
<xsl:choose>
<xsl:when test="string(.)">
<p>
<xsl:call-template name="escapeQuotes">
<xsl:with-param name="txt" select="."/>
</xsl:call-template>
</p>
</xsl:when>
<xsl:otherwise>
<p>
<xsl:apply-templates/>
</p>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...