синтаксический анализатор Python пропускает исключение - PullRequest
3 голосов
/ 14 июня 2011

Есть ли способ "пропустить" строку с использованием синтаксического анализатора SAX XML?

У меня есть неподтверждающий XML-документ, который представляет собой объединение действительных XML-документов, поэтому для каждого документа появляется <?xml ...?>. Также обратите внимание, что мне нужно использовать синтаксический анализатор SAX, поскольку входные документы огромны.

Я попытался создать класс «пользовательский поток» в качестве фидера для анализатора, но быстро понял, что SAX использует метод read и, таким образом, считывает данные в «байтовых массивах», тем самым взрывая сложность этого проекта.

спасибо!

ОБНОВЛЕНИЕ: Я знаю, что есть способ обойти это использование csplit, но я стремлюсь к решению на основе Python, если это вообще возможно в разумных пределах.

Обновление 2: Возможно, мне следовало бы сказать "переход к следующему документу", это имело бы больше смысла. Во всяком случае, это то, что мне нужно: способ парсинга нескольких документов из одного входного потока.

1 Ответ

0 голосов
/ 12 июля 2011

Когда вы объединяете документы вместе, просто замените начало <? и?> с <! - и ->, это закомментирует объявления xml.

...