Анализатор Python SAX говорит, что файл XML не правильно сформирован - PullRequest
0 голосов
/ 02 апреля 2009

Я удалил некоторые теги, которые я считал ненужными из файла XML. Теперь, когда я пытаюсь разобрать его, мой SAX-парсер выдает ошибку и говорит, что мой файл не правильно сформирован. Однако я знаю, что у каждого начального тега есть конечный тег. Открывающий тег файла имеет ссылку на XML-схему. Может ли это быть причиной проблемы? Если так, то как мне это исправить?

Редактировать: Я думаю, что нашел проблему. Мои данные содержат символы "& lt" и "& gt", предположительно из тегов html. После анализа они преобразуются в символы "<" и ">", что, похоже, беспокоит синтаксический анализатор SAX. Есть ли способ предотвратить это?

Ответы [ 4 ]

2 голосов
/ 02 апреля 2009

Я бы предложил вернуть эти теги обратно и убедиться, что они все еще работают. Затем, если вы хотите убрать их, делайте это по одному, пока он не сломается.

Однако я подвергаю сомнению мудрость их устранения. Если это ваш XML-файл, вы должны понимать это лучше. Если это сторонний XML-файл, вам действительно не стоит возиться с ним (пока вы не поймете его лучше:

1 голос
/ 02 апреля 2009

Разве синтаксический анализатор не дает вам подробности о , где он считает, что он не правильно сформирован?

Вы пытались загрузить файл в редактор XML и проверить его там? Другие синтаксические анализаторы XML принимают это?

Схема не должна изменяться независимо от того, является ли XML корректным или нет; вполне может измениться, является ли действительным или нет См. Запись в Википедии о правильной XML-форме , чтобы узнать больше, или XML-спецификации , чтобы узнать больше:)

РЕДАКТИРОВАТЬ: Чтобы представить «&» в тексте, вы должны экранировать его как &amp;

Итак:

&lt

должно быть

&amp;lt

(при условии, что вам действительно нужен амперсанд, l, t).

0 голосов
/ 04 апреля 2009

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

0 голосов
/ 02 апреля 2009

Я бы рекомендовал попробовать разобрать его с помощью другого анализатора XML. Это должно указывать на то, что документ неправильный, или синтаксический анализатор.

Кроме того, фактическое сообщение об ошибке может быть полезным. Например, одна довольно распространенная проблема заключается в том, что объявление xml (если оно используется, оно необязательно) должно быть самым первым - даже пробелы перед ним не допускаются.

...