CruellaDeVille Skrevet 30. mars 2015 Del Skrevet 30. mars 2015 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
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå