libxml делает разницу между "и" - PullRequest
0 голосов
/ 25 октября 2010

Я сталкиваюсь с невероятной странной проблемой:

Используемый мной синтаксический анализатор libxml делает разницу между "и".

Есть ли один? Следующий атрибут делает ошибку:

name = "New Headway_the третье издание"

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

:72: parser error : invalid character in attribute value
<TopCont id="1197" name="New Headway_the thir...
                         ^

Действительно странная вещь заключается в том, что атрибут исходит от веб-службы, которая работает хорошо, за исключением его TopCont ... Символы очень обычным образом!

Спасибо за вашу помощь, Markus

1 Ответ

2 голосов
/ 25 октября 2010

Первый - это "- код 34 ascii - это допустимая двойная кавычка для использования в файле XML.

Другой - какая-то причудливая открытая двойная кавычка (или закрытая двойная кавычка, я не могу точно сказать). Тот факт, что он выглядит как символ с кодом 34, не имеет значения с точки зрения анализаторов XML.

Парсер будет принимать только "(34) как кавычку. Вы не можете использовать любой другой символ и ожидать, что он будет работать - это все равно, что просто использовать любой другой символ в случайном порядке и ожидать, что он будет иметь смысл:

<TopCont id="1197" name=¢New Headway_the thir...

Единственная причина, по которой вы запутались, заключается в том, что "и" выглядят одинаково для человека; парсер заботится только о своем коде символа:)


NB. Очень странно, что веб-сервис будет возвращать оба типа цитат - это говорит мне о том, что кто-то мог бы вырезать и вставить откуда-то еще, т.е. Word? Что такое веб-сервис?

...