2010-01-24 2 views
0

У меня есть TONS из XML Parsing Error: EntityRef: expecting ';' ошибок на моей странице только из-за неправильного использования амперсандов в ссылках разработчика.Замените & на & в URL-адресах

Вместо того, чтобы просить его использовать & вместо &, как я могу заменить те, которые загружаются после загрузки с помощью jQuery?

Редактировать: Да, валидаторы читают источник, поэтому он не будет работать. Есть ли другой способ фильтрации HTML и устранения глупых ошибок, подобных этим?

Спасибо!

+1

Несомненно, «разработчик» - это не только вы? :) Используйте достойный текстовый редактор и выполните «Найти и заменить». Или просто удалите XHTML и используйте HTML. – BalusC

+0

Да, я не разработчик. Мне нравится зеленый цвет на странице результатов проверки! :) Это файл шаблона в приложении JSP. – 3zzy

+1

JSP? Вы должны были сказать это раньше. Используйте JSTL '' и/или ''. Он автоматически ускользает от HTML-объектов и кодирует URL-адрес соответственно – BalusC

ответ

2

Это не будет работать в Javascript, вам действительно нужно решить это на стороне сервера.

В соответствии с комментариями вы используете JSP. Вы можете использовать JSTL (просто снимите jstl-1.2.jar в /WEB-INF/lib) <c:out> и <c:url> теги для этого.

The <c:out> по умолчанию ускользает HTML сущностям <, >, &, " и '. <c:url> может использоваться в комбинации с <c:param>, который по умолчанию кодирует параметры запроса.

0

jQuery не поможет решить ошибки проверки. На самом деле, валидаторы даже не запускают JavaScript.

+0

Валидаторы читают источник, ах! – 3zzy

0

Вы не сможете исправить ошибки анализа после того, как страница уже загружена и проанализирована. Единственное правильное решение - сделать замену на стороне сервера.

1

Замена текстового содержимого страницы не окажет никакого влияния на результаты проверки, так как валидатор не выполняет сценарии. Он по-прежнему будет видеть исходное содержимое извлеченного документа.

Если вы все еще хотите сделать это по другим причинам, кроме проверки, вы можете попробовать что-то вроде this plugin.

0

Даже если вы можете исправить их в jQuery, страница уже обрабатывается этой точкой, и ошибки все равно будут выбрасываться. Вам бы лучше провести глобальный поиск по & и вручную заменить их.

+0

Да, но я не знаю регулярное выражение для замены & & только в ссылках и только в атрибуте href. – 3zzy

+0

Вот почему я сказал «вручную», заменив их. :) Я уверен, что есть регулярное выражение, подобное этому. Не зная вашего редактора и его ограничений, я хотел сообщить общую идею о его исправлении на сервере. –

Смежные вопросы