2011-07-28 1 views
1

Я получаю ошибку expat при анализе только определенных символов. Другой HTML-код разбирается просто отлично. Я использую библиотеку UTF-8 expat libexpatMT.lib, и я работаю с char и std :: string в оболочке. Нет широких символов и т. Д.Не удается выполнить синтаксический анализ амперсандов с помощью expat. Недопустимый токен?

// The ampersand leads to: Expat error: *not well-formed (invalid token)* 
<a href="http://www.myurl.com?a=b&c=d">Link</a> 
<span>Tom & Jerry</span> 
<h1>K&auml;se</h1> 

Я смущен, почему амперсанд может быть неверным маркером здесь, так как он используется даже внутри HTML сущностей, как &amp; Замены амперсандов с &amp; или пользовательскими разделителями не работают.

Любые предложения? Здесь проблема амперсанда.

ответ

3

В XML вы избегаете амперсанда, даже в сущности. Таким образом, действительное значение равно <a href="http://www.myurl.com?a=b&amp;c=d">Link</a>
Правильные веб-страницы делают это. Тем не менее, браузеры вполне терпимы к вашей ошибке.

+0

Это не работает. Кажется, что мне нужно «удвоить escape» значения типа: '& auml;' для текста типа '

Tom&Jerry
' Спасибо! – Smamatti

+0

Там что-то не так, проверьте, нет ли двойного преобразования/отмены, происходящего на вашем коде, возможно. – PhiLho

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

  • Нет связанных вопросов^_^