Toon posts:

XSL replacen van '(quote teken)

Pagina: 1
Acties:

Verwijderd

Topicstarter
Beste tweakers,

momenteel ben ik met onderstaande bezig :

XML:
code:
1
2
3
<repeating_quotelist>
    <quotetext><p><a href="http://bla.com">kuch 's avonds</a></p></quotetext>
          </repeating_quotelist>


Nu haal ik middels xsl de complet quotext op en print deze op het scherm,
echter ik wil geen failures hebben op vreemde tekens zoals '.

Echter het lukt niet om de ' te replacen door een ander teken,

ik gebruik onderstaande XSL.

code:
1
2
3
4
5
6
7
8
Bronbericht = new Array();

    <xsl:for-each select="repeating_quotelist/quotetext">


    var c='<xsl:copy-of select="." />';
c=c.replace("'","\'");  
document.write(c);


Ik heb al middels google en w3schools gezocht op de mogelijkheden en encoding om de ' te replacen, maar ik vind nergens een oplossing.

Tevens heb ik al getract oplossingen te problemen middels een javascript replace functie of de xml translate function..

Ik gebruik trouwens onderstaande encoding in de xml.

<?xml version="1.0" encoding="UTF-8"?>

Iemand enig idee hoe dit probleem valt op te lossen?

Het is dus ook de bedoeling dat de <a href> getoond word....

  • BHR
  • Registratie: Februari 2002
  • Laatst online: 19:42

BHR

Je zult de ' in xsl moeten replacen, voordat deze wordt geoutput.

Dus voordat je de variable c in javascript beschikbaar hebt!

http://aspn.activestate.com/ASPN/Cookbook/XSLT/Recipe/65426
(google: http://www.google.com/sea...sl+quote+replace&ie=UTF-8)

in het commentaar van activestate staat wel een oplossing voor je ' probleem

No amount of key presses will shut off the Random Bug Generator


Verwijderd

Topicstarter
Bedankt voor je reactie,

Alleen krijg ik nu als output in me brower This sentence isn't apostrophe-free

ipv This sentence isn't apostrophe-free.


Heb al gezocht naar andere characters en entity references maar vind geen oplossing voor de ' terwijl deze er wel is voor de quote (")

Verwijderd

' is geen xml entity, gebruik een character reference

edit: ow wacht, is javascript, gebruik dan \'
(zoals je zelf al aangaf 8)7 )

[ Voor 41% gewijzigd door Verwijderd op 25-05-2007 13:04 ]


Verwijderd

Topicstarter
Ik gebruik nu het voorbeeld zoals BHR aangaf

code:
1
2
3
4
5
6
        <xsl:for-each select="repeating_quotelist/quotetext">
               <xsl:call-template name="replace-string">
                      <xsl:with-param name="text"><xsl:copy-of select="." /></xsl:with-param> 
                      <xsl:with-param name="from">'</xsl:with-param>
                  <xsl:with-param name="to" select="'&apos;"/>
                </xsl:call-template>

Verwijderd

code:
1
<xsl:with-param name="to">\'</xsl:with-param>
?

Verwijderd

Topicstarter
Mijn dank is groot :D alleen de \ mocht nog weg :>

Verwijderd

Topicstarter
Ok dat werkt, alleen ben ik dan wederom me links kwijt die ik met <xsl:copy-of > uitlees....

Verwijderd

Topicstarter
Na lang zoeken blijf ik nog met een probleem zitten....

Onderstaande code heb ik momenteel

code:
1
2
3
4
5
6
7
8
9
10
11
   <xsl:for-each select="repeating_quotelist/quotetext">
     
     <script language="JavaScript">
     
   
     c='<p><a href="http://bla.com">kuch \'s avonds</a></p>';
     c=c.replace("'","")

     document.write(c);

     </script>


met \' hard erin te zetten heb ik geen enkel probleem, enkel wanneer ik

c='<p><a href="http://bla.com">kuch 's avonds</a></p>';

gebruik loop ik weer tegen problemen aan,
Ik heb al getracht dit met de replace op te lossen middel c.replace("'", "\"')
Echter dit wil niet werken...

Iemand nog suggesties waar ik hier meer over kan vinden?

Ik roep dus vanuit de xml een xsl aan waar deze bewerking plaatsvind...
Pagina: 1