Проверка синтаксиса Python XML - не применять «>» в ​​тексте элемента - PullRequest
0 голосов
/ 04 сентября 2018

У меня есть вопрос здесь. Я использую Etree Python для анализа XML и проверки синтаксиса на нем. Проблема, с которой я столкнулся, заключается в том, что он не может выполнить синтаксический анализ XML, но не очень хорошо показывает, где эта ошибка была фактически сделана впервые. Я понял, что мне нужно, чтобы иметь возможность применять правило, которое гласит, что в тексте элемента XML не должно быть «>» (что для моих целей XML является правильным и обоснованным). Есть ли способ сказать Этри, чтобы сделать это при разборе XML? Я знаю, что есть libxml, но если я собираюсь использовать библиотеку, которая не поставляется по умолчанию с Python 2.75, то мне понадобится исходный код, поскольку мне не разрешено устанавливать дополнительные библиотеки Python, где я работаю. Итак, ответ на вопрос о том, чтобы не вводить «>» в ​​тексте элемента XML, и некоторые предложения о том, как определить строку, где ошибка впервые была сделана в документе XML; например, забыть открывающий '<' в закрывающем теге XML. Любая помощь приветствуется! Спасибо. </p>

1 Ответ

0 голосов
/ 05 сентября 2018

Я не уверен насчет вашего основного вопроса. Почему вы хотите применить правило, которое ">" не появляется в тексте, поскольку в XML такого правила нет?

Если вас не устраивает диагностика, которую вы получаете от анализатора XML, тогда единственный реальный вариант - попробовать другой анализатор (хотя убедитесь, что вы извлекаете всю доступную информацию - я не знаю, ETree Python, но некоторые парсеры скрывают диагностику в непонятных местах).

Но есть некоторые ограничения. Если стартовый тег отсутствует, то парсер не сможет сказать вам, где он должен был быть; он может только сказать вам, где находится несопоставленный конечный тег. Поэтому просить вас сказать, «где была впервые совершена ошибка», значит слишком много.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...