Как синтаксический анализатор SAX обрабатывает символы?

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

код :

def characters(self,chrs):
            if self.flag==1:
                    self.outfile.write(chrs+'\n')

xml файл:

<e1>9308</e1>
<e2>865</e2>

и вывод такой, как показано ниже, много пустых строк.


9308


865

Думаю, должно понравиться:

9308

865

Почему там пробел? и я прочитал информацию о документе:

символов (self, content)

Получить уведомление о символьных данных. Парсер вызовет этот метод, чтобы сообщить о каждом фрагменте символьные данные. Анализаторы SAX могут возвращать все смежные символьные данные в одном фрагменте, или они могут разделить его на несколько фрагментов; однако все символы в одном событие должно исходить от того же внешнего объекта, чтобы Locator provides useful information.

so SAX will process one character area as several fragments? and callback several times?

6
задан Benjamin 1 February 2014 в 13:13
поделиться