Ошибка проверки XML: EntityRef: ожидается ';'
<url>
<loc>http://www.ezed.in/ezed/courseDemoIntroPage.do?courseId=COU10000000138003530&checkingCourseFrom=preLogin#.U2DcKvmSySo</loc>
</url>
ошибка в строке 102 в столбце 103: EntityRef: ожидание ';'
Не в состоянии понять, в чем может быть проблема.
2 ответа
Ваш URL должен быть экранирован.
Символ & используется в XML для вставки ссылки на символ с синтаксисом &name;
(примечание ; после имени). Парсер ожидает : но он не может найти его (есть больше доступных разделителей, это просто наиболее распространенный случай).
Затем решение ускользает (то, как это делается, зависит от языка, который вы используете для генерации этого XML-файла), но конечный результат должен быть примерно таким:
<url>
<loc>http://www.ezed.in/ezed/courseDemoIntroPage.do?courseId=COU10000000138003530&checkingCourseFrom=preLogin#.U2DcKvmSySo</loc>
</url>
Обратите внимание, что равнина &
была заменена его экранированной версией &
, Для дальнейших деталей смотрите эту простую статью.
Другое возможное решение (если вы не хотите / не можете уйти) - заключить URL в раздел CDATA следующим образом:
<url>
<loc><![CDATA[http://www.ezed.in/ezed/courseDemoIntroPage.do?courseId=COU10000000138003530&checkingCourseFrom=preLogin#.U2DcKvmSySo]]></loc>
</url>
Другой способ, как показано ниже:
Вместо "CDATA
"мы могли бы использовать htmlspecialchars
PHP
встроенная функция для URL-узла. это будет работать мало из XML-канала, они не хотят CDATA
в выводе XML, так что это будет полезно для кого-то.
Спасибо
Сегодня я наткнулся на ту же проблему, если вы создаете ссылки с помощью PHP, вы можете использовать эту функцию:
htmlspecialchars();
Он отформатирует нужную строку для вас в символы HTML, чтобы вы могли вставить ее как <loc>
.
Просто замените "&" на "& a m p;" без пробелов я сюда положил!