Читать строку без разбора в Python xml.dom - PullRequest
0 голосов
/ 25 сентября 2011

Как вы, наверное, знаете, Pythons xml.dom readString () выдает исключение, если с кодом XML что-то не так.

В настоящее время я пишу простой чат-сервер xmpp, и, как вы, вероятно, такжезнаете, одно из первых сообщений с запросом клиента не закрывает тег stream: stream, пока не получит ответ.

Есть ли способ использовать pythons xml.dom без "синтаксического анализа" xmlcode или долженЯ пишу свой собственный xml-парсер?

Ответы [ 3 ]

2 голосов
/ 25 сентября 2011

DOM-парсеры всегда должны читать весь XML-файл.Вы хотите SAX-парсер .

0 голосов
/ 26 сентября 2011

Парсер, который, вероятно, даст вам лучший опыт, это xml.parsers.expat . В вашем StartElementHandler создайте элемент DOM и добавьте его к текущему элементу как дочерний элемент, а затем установите текущий элемент на новый элемент. В вашем EndElementHandler вставьте текущий элемент в родительский элемент этого элемента. Если родитель был null, у вас есть строфа. Проводить тщательное тестирование пространств имен; вы в первый раз можете ошибочно принять атрибуты.

0 голосов
/ 25 сентября 2011

По какой причине вы не используете уже установленную библиотеку XMPP, например xmpppy ?( См. Также )

...