2011-02-01 5 views
1

Как разместить действующую ссылку с параметрами на моей странице?Действительная ссылка с параметрами GET

Когда я запустить валидатор, он дает ошибку:

Line 37, Column 37: reference to entity "p" for which no system identifier could be generated 
<li><a href="index.php?c=tutorials&p=cat&cid=1" >LINK</a></li> 
+0

** Связанный: ** * (Тот же вопрос, помеченный как «HTML») * [Я кодирую амперсанды в ?] (Http://stackoverflow.com/q/3705591/1497596) – DavidRR

+0

@DavidRR Не то же самое вопрос ... подобный, но другой вопрос. Он спрашивает, следует ли кодировать амперсанды. Я спрашиваю, почему это неправильно в валидаторе (не знал об амперсанде и кодировании, поэтому я не знал, что мне нужно что-то искать в кодировке). – kravemir

ответ

4

здесь http://css-discuss.incutio.com/wiki/Code_Validation

Наиболее распространенная ошибка, безусловно, выглядит примерно так: ссылки на сущности «BV_Engine», для которого нет идентификатора системы не может быть сгенерирован. Это означает, что у вас есть URL-адрес с значком &, в котором вы забыли сбежать.

Например: <a href="script.cgi?id=4&BV_Engine=20">

& знак в этом URL должен быть &. На самом деле знаки ALL & в документе HTML должны быть экранированы таким образом, чтобы избежать путаницы с синтаксическими анализаторами HTML. Для приведенного выше примера, заменив его

<a href="script.cgi?id=4&amp;BV_Engine=20"> 
2

Побег ваши амперсандов:

<li><a href="index.php?c=tutorials&amp;p=cat&amp;cid=1" >LINK</a></li> 
+0

Найдено здесь, кстати: http://css-discuss.incutio.com/wiki/Code_Validation –

1

Вы должны использовать & вместо обычного &. Его html-объект.

<li><a href="index.php?c=tutorials&amp;p=cat&amp;cid=1" >LINK</a></li> 
+0

Да, действительно, так же, как мы опубликовали одно и то же в одно и то же время. – ludesign

0

Да, как и другие выложили выше, вам нужно, чтобы избежать ваших amparsands, как & усилителя; а не &.

<li><a href="index.php?c=tutorials&amp;p=cat&amp;cid=1">LINK</a></li> 

должно работать.

0

Чтобы быть совместимым с XHTML XML в целом), то ampersandдолжен быть экранированы. Для этого требуется использование SGML/XML entity.

Есть три разных сущности, которые могут быть использованы для представления амперсанда:

  1. именованного объект: &amp;(Это один из пяти predefined entities, определенных в спецификации XML.)

  2. Десятичный numeric character reference: &#38;

  3. Hexadecimal numeric character reference: &#x26;

Таким образом, стоимость вашего примера href атрибута может быть представлена ​​в одном из этих трех способов:

href="index.php?c=tutorials&amp;p=cat&amp;cid=1" 
href="index.php?c=tutorials&#38;p=cat&#38;cid=1" 
href="index.php?c=tutorials&#x26;p=cat&#x26;cid=1" 

Курс е, это было бы справедливо смешивать вышеуказанные объекты, как это:

href="index.php?c=tutorials&amp;p=cat&#38;cid=1" 
          ^^^^^  ^^^^^ 

... но большинство утверждают, что для принятия согласованного подхода на протяжении всего документа (и даже всего веб-сайта).

Из трех объектов, которые могут использоваться для представления амперсанда, я считаю, что &amp; используется чаще всего в XHTML.

Конечная нота: Один из вышеуказанных лиц должны также использоваться при авторизации HTML, однако browsers today do not require that the ampersand be escaped.

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