2010-09-16 28 views
0

J'essaie d'obtenir une page à valider (http://validator.w3.org) et il se plaint de certains xml que j'ai dans une balise de script.Page ne validant pas en raison de xml dans une balise de script

Comment puis-je résoudre ce problème? Suis-je censé avoir quelque chose autour du contenu de mon tag de script disant "ne me regarde pas"?

ligne 68, colonne 114: balise de fin pour élément "STR_PROCESSING" qui n'est pas ouverte

> Processing .... </STR_Processing >

code:

<script type="text/javascript" defer="defer"> 
var sML_XML='<STR_Processing>Processing....</STR_Processing><STR_OK>...'; 
</script> 
+0

S'il vous plaît montrer la balise de script. –

Répondre

2

Vous devez placer une barre oblique inverse (\) avant que les barres obliques, quand il est dans un script.
Regardez ici: http://www.htmlhelp.com/tools/validator/problems.html#script

Par exemple:
var test="<b>something<\/b>";
au lieu de:
var test="<b>something</b>";

Cela devrait valider sans erreur.

+1

+1. Si vous regardez directement sous le message d'erreur produit par le validateur, vous devriez voir un message "Si cette erreur se produit à l'intérieur d'un élément de script" qui renvoie à la FAQ du validateur, puis à cette page. – Quentin

+1

@David Dorward, c'est comme ça que j'ai eu cette page. :) Il y a longtemps que je l'ai vu mais j'ai oublié son adresse, mais je me suis souvenu que j'ai navigué à partir de la page du validateur, donc j'ai créé un mauvais code pour obtenir l'erreur et l'adresse de la page. : P – rhino

0

Si vous utilisez balise dans les chaînes que vous pouvez faire ceci:

var yourHTML = "<STR_PROCESSING>YourData<" + "/STR_PROCESSING>"; 
+1

Cela fonctionne, mais est inefficace. S'échapper selon la réponse du rhinocéros et la FAQ du Validateur est la bonne solution ici. – Quentin

0

La façon XML correcte consiste à utiliser des identifiants de section CDATA:

<script type="text/javascript">//<![CDATA[ 
/* code */ 
//]]></script> 
+0

Le message d'erreur est celui qui se produit lorsque le document est HTML, pas XHTML, donc cela ne résoudrait pas le problème. – Quentin

+0

Si c'est du HTML, j'utiliserais des séquences d'échappement au lieu de '<', '>' et '&': '\ x3C' (<), '\x3E'(>) et' \ x26' (&). – Lekensteyn

+1

Seul le '<' ou le '/' devrait être échappé (peu importe lequel, le point est que Quentin