2010-09-16 5 views
0

Я пытаюсь получить страницу для проверки (http://validator.w3.org), и она жалуется на некоторые xml, которые у меня есть внутри тега скрипта.Страница не проверяется из-за xml в теге скрипта

Как я могу это решить? Должен ли я иметь что-то вокруг содержимого своего тега сценария, говорящего «не смотри на меня»?

линия 68, колонка 114: закрывающий тег для элемента "STR_PROCESSING", который не является открытым

> Обработка .... </STR_Processing >

Код:

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

Пожалуйста, покажите тег сценария. –

ответ

2

Вы должны поместить обратную косую черту (\) до косой черты, когда он находится в скрипте.
Посмотрите здесь: http://www.htmlhelp.com/tools/validator/problems.html#script

Например:
var test="<b>something<\/b>";
вместо:
var test="<b>something</b>";

Это должно подтвердить без ошибок.

+1

+1. Если вы посмотрите непосредственно под сообщением об ошибке, выданным валидатором, вы должны увидеть сообщение «Если эта ошибка возникает внутри элемента сценария», которая ссылается на собственные FAQ для Validator, а затем на эту страницу. – Quentin

+1

@David Dorward, вот как я получил эту страницу. :) Давным-давно я видел это, но забыл его адрес, но я помнил, что я перешел к нему со страницы валидатора, поэтому я создал неправильный код, чтобы получить ошибку и адрес страницы. : P – rhino

0

Если вы используете тег в строках вы можете сделать это:

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

Это работает, но неэффективно. Исключение в соответствии с ответом носорога и собственным Частью Validator является правильным решением здесь. – Quentin

0

Правильный способ XML является использование секции CDATA идентификаторы:

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

Сообщение об ошибке - это сообщение, которое возникает, когда документ является HTML, а не XHTML, поэтому это не решит проблему. – Quentin

+0

Если это HTML, я бы использовал escape-последовательности вместо '<', '>' и '&': '\ x3C' (<), '\x3E'(>) и' \ x26' (&). – Lekensteyn

+1

Только «<» или «/» нужно будет экранировать (неважно, какой из них: « Quentin