Panacea.NL als je geinteresserd bent in IT en Geneeskunde!
Hum, volgens mij zouden die operatoren gewoon moeten werken om dat & tenslotte slechts een stukje syntax voor & is. Dit klinkt dus eigenlijk meer als een browser-probleem als het inderdaad niet werkt.zoepercavia: alleen die Cdata sectie zet & om naar & en dat ik vind wat minder leuk. '&&' (logical AND) werkt dan dus niet meer, iemand een id hoe het wel goed gaat?
Eventueel kan je iets doen moet disable-output-escaping, maar je loopt grote kans dat je resultaat XML dan niet meer well-formed is.
De makkelijkste oplossing is echter nog wel om je scripts gewoon in externe bestanden te zetten als dat mogelijk is voor jouw situatie. Je hebt dan helemaal nergens last meer van
Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment
hmm... in aparte bestanden zetten kan wel, maar komt de overzichtelijkheid niet ten goede en is een beetje onzinnig in dit geval omdat het gaat om specifieke form check scripts.
overigens zegt deze link dat alles binnen CData ignored wordt door de parser (http://www.w3schools.com/xml/xml_cdata.asp), dit dacht ik ook wel. Browser probleem is het ook niet, zowel Mozilla als IE hebben && in de source staan...
ik snap er geen kut van...
overigens zegt deze link dat alles binnen CData ignored wordt door de parser (http://www.w3schools.com/xml/xml_cdata.asp), dit dacht ik ook wel. Browser probleem is het ook niet, zowel Mozilla als IE hebben && in de source staan...
ik snap er geen kut van...
Panacea.NL als je geinteresserd bent in IT en Geneeskunde!
Let er op dat Internet Explorer 6 het als volgt wil zien:mbravenboer: De makkelijkste oplossing is echter nog wel om je scripts gewoon in externe bestanden te zetten als dat mogelijk is voor jouw situatie. Je hebt dan helemaal nergens last meer van.
code:
1
| <script src="script.js" type="text/javascript"></script> |
En niet zo:
code:
1
| <script src="script.js" type="text/javascript" /> |
Terwijl het element zonder inhoud door veel XSLT processors standaard tot de <script /> vorm wordt omgezet (wat overigens gewoon correct is)...
Scheelt je misschien weer wat debuggen
CDATA sections worden niet genegeerd, maar worden letterlijk opgevat zoals je het intikt: de inhoud wordt dus niet geparsed en je kan er daardoor bijvoorbeeld XML constructies in opnemen die gewoon als tekst bedoeld zijn (zoals &).
In een CDATA section kan je daarom gewoon & schrijven, wat in de rest van een XML document niet is toegestaan: daar moet je & schrijven. Voor een XML parser zou het niet uit mogen maken of er & in een CDATA section staat of & in een normale tekst en daarom zet je XSL engine gewoon alles om naar geescaped materiaal.
Als je toch graag CDATA sections wilt moet je het "cdata-section-elements" attribuut van het output element gebruiken om aan te geven waar je CDATA sections wilt. Ik denk dat een handleiding hiervoor makkelijk te vinden moet zijn met Google
.
In een CDATA section kan je daarom gewoon & schrijven, wat in de rest van een XML document niet is toegestaan: daar moet je & schrijven. Voor een XML parser zou het niet uit mogen maken of er & in een CDATA section staat of & in een normale tekst en daarom zet je XSL engine gewoon alles om naar geescaped materiaal.
Als je toch graag CDATA sections wilt moet je het "cdata-section-elements" attribuut van het output element gebruiken om aan te geven waar je CDATA sections wilt. Ik denk dat een handleiding hiervoor makkelijk te vinden moet zijn met Google
Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment
Owh ja, dat was ook nog een lekkere jatomato: Let er op dat Internet Explorer 6 het als volgt wil zien
Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment
hmm, mijn cdata staat in de XSL, in principe moet ie dus als ik && typ ook na het transformen && er uit gooien, maar hij doet dus && 
alle relevante data, gaat om de email test regel (&& formulier.email.value.length), deze stylesheet wordt geladen in ASP en daarna over een XML heen geschopt...
alle relevante data, gaat om de email test regel (&& formulier.email.value.length), deze stylesheet wordt geladen in ASP en daarna over een XML heen geschopt...
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
| <?xml version='1.0'?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml">
<xsl:output method="html" indent="yes" encoding="iso-8859-1" doctype-public="-//W3C//DTD XHTML 1.0//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>
<xsl:include href="../../../layout/panacea/standaard.xsl" />
<xsl:template match="pagina/content/gebruiker">
<script language="javascript">
<![CDATA[
function formCheck(formulier) {
var go = 1;
var errorString = "";
//regexpen
var reg_email1 = /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/;
var reg_email2 = /^.+\@(\\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/;
//controle
if (formulier.nickNaam.value.length == 0) {go=0;errorString += "Geen nickNaam ingevuld\n"}
if ((reg_email1.test(formulier.email.value) || !reg_email2.test(formulier.email.value)) && formulier.email.length != 0) {go=0;errorString+= "U heeft geen geldig e-mail adres ingevuld\n"}
if (formulier.wwnogeenkeer.value != formulier.wachtwoord.value) {go=0;errorString += "Wachtwoorden zijn niet hetzelfde"}
if (formulier.wwBevestig.value.length == 0) {go=0;errorString += "Geen wachtwoord ter bevestiging ingevuld"}
//return
if (errorString != "") {alert(errorString);}
return (go==1)?true:false;
}
]]>
</script> |
Panacea.NL als je geinteresserd bent in IT en Geneeskunde!
Omdat dit toch wel een faq is ondertussen heb ik maar even een voorbeeld gemaakt:
Het gaat uiteraard alleen om de output tag en de script met de xsl:text.
Resultaat:
Netjes he?
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
| <?xml version="1.0"?>
<xsl:transform version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:html="http://www.w3.org/1999/xhtml">
<xsl:output method="xml" indent="yes" encoding="UTF-8"
doctype-public="-//W3C//DTD XHTML 1.1//EN"
doctype-system="http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"
cdata-section-elements="html:script"/>
<xsl:template match="/">
<html>
<head>
<title>Ancestor example</title>
</head>
<script>
<xsl:text disable-output-escaping="yes">
<![CDATA[ Blaat && Blaat <blaat> ]]>
</xsl:text>
</script>
<body>
<table class="main">
<tbody>
<xsl:apply-templates select="folder"/>
</tbody>
</table>
</body>
</html>
</xsl:template>
<xsl:template match="folder|file">
<tr>
<xsl:apply-templates select="ancestor::folder" mode="dirty-jump"/>
<td>
<xsl:value-of select="@name"/>
</td>
</tr>
<xsl:apply-templates select="folder|file"/>
</xsl:template>
<xsl:template match="folder|node" mode="dirty-jump">
<td>-</td>
</xsl:template>
</xsl:transform> |
Het gaat uiteraard alleen om de output tag en de script met de xsl:text.
Resultaat:
code:
1
2
3
| <script><![CDATA[
Blaat && Blaat <blaat>
]]></script> |
Netjes he?
Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment
De kern van mijn verhaal is juist dat dat hetzelfde iszoepercavia: hmm, mijn cdata staat in de XSL, in principe moet ie dus als ik && typ ook na het transformen && er uit gooien, maar hij doet dus &&
Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment
bingo!
bedankt voor de snelle reacties, ik had wel al <xsl:text disable-output-escaping="yes"> gebruikt, maar toen ging et mis op well-formedness. Het mixen met Cdata was ik nog niet opgenomen...
Thx...
weer wat geleerd...
bedankt voor de snelle reacties, ik had wel al <xsl:text disable-output-escaping="yes"> gebruikt, maar toen ging et mis op well-formedness. Het mixen met Cdata was ik nog niet opgenomen...
Thx...
weer wat geleerd...
Panacea.NL als je geinteresserd bent in IT en Geneeskunde!
Pagina: 1