xml.parsers.expat
— Быстрый парсинг XML с использованием Expat¶
Предупреждение
Модуль pyexpat
не защищен от злонамеренно созданных данных. Если
необходимо проанализировать ненадежные или неподтвержденные данные, см. раздел
Уязвимости XML.
Модуль xml.parsers.expat
является интерфейсом Python к Expat не
проверяющему XML парсеру. Модуль обеспечивает единственный дополнительный
тип, xmlparser
, который представляет текущее состояние XML парсера. После
создания объекта xmlparser
различные атрибуты объекта могут быть
установлены в функции обработчика. Когда документ XML подается в
парсер, функции обработчик вызываются для символ данных и разметки в
документе XML.
Модуль использует модуль pyexpat
для обеспечения доступа к Expat
парсеру. Прямое использование модуля pyexpat
запрещено.
Модуль предоставляет одно исключение и один объект типа:
-
exception
xml.parsers.expat.
ExpatError
¶ Исключение, возникшее при сообщении Expat об ошибке. Посмотрите раздел Исключения ExpatError для получения дополнительной информации об интерпретации ошибок Expat.
-
exception
xml.parsers.expat.
error
¶ Псевдоним для
ExpatError
.
-
xml.parsers.expat.
XMLParserType
¶ Тип возвращаемого значения из функции
ParserCreate()
.
Модуль xml.parsers.expat
содержит две функции:
-
xml.parsers.expat.
ErrorString
(errno)¶ Возвращает пояснительную строку для данного номера ошибки errno.
-
xml.parsers.expat.
ParserCreate
(encoding=None, namespace_separator=None)¶ Создание и возвращаемого нового объекта
xmlparser
. encoding, если определено, должен быть строкой, обозначающей используемую кодировку XML-данных. Expat не поддерживает столько кодировок, сколько Python, и его репертуар кодировок не может быть расширен; поддерживает UTF-8, UTF-16, ISO-8859-1 (Latin1) и ASCII. Если задано значение encoding [1], это переопределит неявную или явную кодировку документа.Expat можете дополнительно выполнить обработку пространства имен XML для вас, включив, предоставив значение для namespace_separator. Значение должено быть односимвольной строкой; будет поднято
ValueError
, если строка имеет недопустимую длину (None
считается таким же, как упущение). То, когда обработка пространства имен включена, элемент вводят имена и имена атрибут, которые принадлежат пространству имен, будет расширено. Имя элемента, переданное элементу обработчикиStartElementHandler
иEndElementHandler
, будет конкатенацией URI пространства имен, разделителя пространства имен символ и локальная части имени. Если разделитель пространства имен является нулевым байтом (chr(0)
), URI пространства имен и локальная часть будут конкатенированы без какого-либо разделителя.Например, если namespace_separator установлен в символ пробела (
' '
) и распарсен следующий документ:<?xml version="1.0"?> <root xmlns = "http://default-namespace.org/" xmlns:py = "http://www.python.org/ns/"> <py:elem1 /> <elem2 xmlns="" /> </root>
StartElementHandler
получит следующие строки для каждого элемента:http://default-namespace.org/ root http://www.python.org/ns/ elem1 elem2
Из-за ограничений в библиотеке
Expat
, используемойpyexpat
, возвращенный экземплярxmlparser
может использоваться только для разбора одного XML документа. ВызовитеParserCreate
для каждого документа, чтобы предоставить уникальные экземпляры парсера.
См.также
- Синтаксический анализатор Expat XML
- Главная страница проекта Expat.
Объекты XMLParser¶
Объекты xmlparser
содержат следующие методы:
-
xmlparser.
Parse
(data[, isfinal])¶ Анализирует содержимое строки data, вызывая соответствующие функции обработчика для обработки проанализированных данных. isfinal должен иметь значение true при окончательном вызове этого метода; это позволяет парсинг единственного файла во фрагментах, не подачу нескольких файлов. data может быть пустым строка в любое время.
-
xmlparser.
ParseFile
(file)¶ Анализ данных XML, считываемых из объекта file. file только должен предоставить метод
read(nbytes)
, возвращая пустой строка, когда больше нет данных.
-
xmlparser.
SetBase
(base)¶ Устанавливает основу быть используемый для решения относительного URIs в системных идентификаторах в декларациях. Решение относительных идентификаторов оставляют применению: через это значение пройдут как аргумент base
ExternalEntityRefHandler()
,NotationDeclHandler()
и функциямUnparsedEntityDeclHandler()
.
-
xmlparser.
GetBase
()¶ Возвращает строку, содержащая базовый набор при предыдущем вызове
SetBase()
, илиNone
, еслиSetBase()
не был вызван.
-
xmlparser.
GetInputContext
()¶ Возвращает входные данные, которые сгенерировали текущее событие как строка. Данные находятся в кодировка объекта, содержащего текст. При вызове, когда событие обработчик неактивно, возвращает значение является
None
.
-
xmlparser.
ExternalEntityParserCreate
(context[, encoding])¶ Создайте «ребенка» парсера, который может быть используемый, чтобы разобрать внешнюю разобранную сущность, упомянутую содержанием, разобранным родительским парсер. Параметр context должен быть строка, переданным функции
ExternalEntityRefHandler()
обработчик, описанной ниже. Ребенок парсер создан с наборомordered_attributes
иspecified_attributes
к значения этого парсер.
-
xmlparser.
SetParamEntityParsing
(flag)¶ Управление парсингом объекта параметров (включая внешнее подмножество DTD). Возможны flag значения
XML_PARAM_ENTITY_PARSING_NEVER
,XML_PARAM_ENTITY_PARSING_UNLESS_STANDALONE
иXML_PARAM_ENTITY_PARSING_ALWAYS
. Возвращает true, если установка флага прошла успешно.
-
xmlparser.
UseForeignDTD
([flag])¶ Запрос этого с истинным значение для flag (по умолчанию) заставит Expat называть
ExternalEntityRefHandler
сNone
для всех аргументов, чтобы позволить альтернативной дАТЕ быть загруженной. Если документ не содержит объявление типа документа, то вызовExternalEntityRefHandler
все равно будет выполнен, но вызовStartDoctypeDeclHandler
иEndDoctypeDeclHandler
выполняться не будет.Передача значения false для flag отменит предыдущее требование, которое передало истинный значение, но иначе не имеет никакого эффекта.
Метод можно вызвать только до вызова методов
Parse()
илиParseFile()
; запрос его после любого из тех назвали причинамиExpatError
, который будет поднят с наборомcode
атрибут доerrors.codes[errors.XML_ERROR_CANT_CHANGE_FEATURE_ONCE_PARSING]
.
Объекты xmlparser
содержат следующие атрибуты:
-
xmlparser.
buffer_size
¶ Размер используемого буфера, когда
buffer_text
true. Новый размер буфера может быть установлен, назначив новый целочисленный значение на этот атрибут. При изменении размера буфер будет очищен.
-
xmlparser.
buffer_text
¶ Установка этого значения в true приводит к тому, что объект
xmlparser
буферизует текст содержимое, возвращаемое Expat, чтобы избежать нескольких обращений к обратному вызовуCharacterDataHandler()
, когда это возможно. Это может улучшить производительность существенно, так как Expat обычно разбивает данные символ в чанки при каждом окончании линии. Этот атрибут false по умолчанию и может быть изменен в любое время.
-
xmlparser.
buffer_used
¶ Если параметр
buffer_text
включен, количество байтов, хранящихся в буфере. Эти байты представляют текст UTF-8 кодированный. Этот атрибут не имеет значимой интерпретации, когдаbuffer_text
является false.
-
xmlparser.
ordered_attributes
¶ Настройка этого атрибута к отличному от нуля целому числу заставляет атрибуты сообщаться как список, а не словарь. атрибуты представлены в порядке, указанном в тексте документа. Для каждого атрибут представлены две записи списка: имя атрибут и атрибут значение. (Более старые версии этого модуля также используемый этот формат.) По умолчанию этот атрибут false; он может быть изменен в любое время.
-
xmlparser.
specified_attributes
¶ Если задано ненулевое целое число, то парсер будет сообщать только те атрибуты, которые были указаны в документе сущность, а не те, которые были получены из объявлений атрибут. Приложения, которые это задают, должны быть особенно осторожны, чтобы использовать, какая дополнительная информация доступна из объявлений по мере необходимости, чтобы соответствовать стандартам поведения процессоров XML. По умолчанию этот атрибут false; он может быть изменен в любое время.
Следующие атрибуты содержат значения, относящиеся к последней ошибке,
обнаруженной объектом xmlparser
, и будут иметь правильную значения только
после вызова Parse()
или ParseFile()
, вызвавшего исключение xml.parsers.expat.ExpatError
.
-
xmlparser.
ErrorByteIndex
¶ Байтовый индекс, в котором произошла ошибка.
-
xmlparser.
ErrorCode
¶ Числовая код, указывающая проблему. Этот значение может быть передан к функции
ErrorString()
, или по сравнению с одной из констант, определенных в объектеerrors
.
-
xmlparser.
ErrorColumnNumber
¶ Номер столбца, в котором произошла ошибка.
-
xmlparser.
ErrorLineNumber
¶ Номер строки, в которой произошла ошибка.
Следующие атрибуты содержат значения, относящиеся к текущему расположению
синтаксического анализа в объекте xmlparser
. Во время сообщения колбэк о
событии синтаксического анализа они указывают местоположение первого из
последовательности символов, которые создали событие. При вызове вне колбэк
обозначенная позиция будет только после последнего события синтаксического
анализа (независимо от наличия связанного колбэк).
-
xmlparser.
CurrentByteIndex
¶ Текущий индекс байта на входе парсера.
-
xmlparser.
CurrentColumnNumber
¶ Номер текущего столбца на входе парсера.
-
xmlparser.
CurrentLineNumber
¶ Текущий номер строки на входе парсера.
Вот список обработчики, которые могут быть установлены. Чтобы установить
обработчик на xmlparser
возражают o, используют o.handlername = func
.
handlername должен быть взят из следующего списка, а func должен быть
вызываемым объектом, принимающим правильное количество аргументов. Все аргументы
являются строки, если не указано иное.
-
xmlparser.
XmlDeclHandler
(version, encoding, standalone)¶ Вызывается при анализе XML-объявления. XML-объявление является (необязательным) объявлением применимой версии рекомендации XML, кодировка текста документа и необязательного «автономного» объявления. version и encoding будут строки, и standalone будет
1
, если документ объявлен автономным,0
если он объявлен не автономным, или-1
если автономный клаузула был опущен. Это доступно только в версии Expat 1.95.0 или более поздней.
-
xmlparser.
StartDoctypeDeclHandler
(doctypeName, systemId, publicId, has_internal_subset)¶ Названный, когда Expat начинает парсинг декларация (
<!DOCTYPE ...
) типа документа. doctypeName обеспечен точно, как представлено. Параметры systemId и publicId дают системные и public идентификаторы, если они указаны, илиNone
, если опущены. has_internal_subset будет верным, если документ содержит и подмножество объявления внутреннего документа. Для этого требуется Expat версии 1.2 или более поздней.
-
xmlparser.
EndDoctypeDeclHandler
()¶ Названный, когда Expat сделан парсинг декларация типа документа. Для этого требуется Expat версии 1.2 или более поздней.
-
xmlparser.
ElementDeclHandler
(name, model)¶ Вызывается один раз для каждого объявления типа элемента. name - имя типа элемента, а model - представление модели содержимого.
-
xmlparser.
AttlistDeclHandler
(elname, attname, type, default, required)¶ Требовавшийся каждый объявил атрибут для типа элемента. Если объявление списка атрибут объявляет три атрибуты, это обработчик вызывается три раза, один раз для каждого атрибут. elname - название элемента, к которому применяется декларация, и attname - название объявленного атрибут. Тип атрибут является строка, переданным как type; возможные значения
'CDATA'
,'ID'
,'IDREF'
,… default дает по умолчаниюу значение для атрибут используемый, когда атрибут не определен документом сущность илиNone
, если нет никакого по умолчаниюа значение (#IMPLIED
значения). Если атрибут требуется, чтобы, даны в документе сущность, required, будет верно. Для этого требуется Expat версии 1.95.0 или более поздней.
-
xmlparser.
StartElementHandler
(name, attributes)¶ Вызывается для начала каждого элемента. name является строка, содержащим имя элемента, а attributes - элемент атрибуты. Если
ordered_attributes
true, это - список (см.ordered_attributes
для полного описания). В противном случае это словарь, отображающий имена на значения.
-
xmlparser.
EndElementHandler
(name)¶ Вызывается для окончания каждого элемента.
-
xmlparser.
ProcessingInstructionHandler
(target, data)¶ Вызывается для каждой инструкции по обработке.
-
xmlparser.
CharacterDataHandler
(data)¶ Вызван для получения символ данных. Это будет вызываться для обычных символ данных, содержимого, помеченного CDATA, и игнорируемого пробела. Заявления, которые должны отличить эти случаи, могут использовать
StartCdataSectionHandler
,EndCdataSectionHandler
иElementDeclHandler
колбэки, чтобы собрать запрошенную информацию.
-
xmlparser.
UnparsedEntityDeclHandler
(entityName, base, systemId, publicId, notationName)¶ Вызван вызов объявлений объектов без анализа (NDATA). Это присутствует только для версии 1.2 библиотеки Expat; для более поздних версий вместо этого используйте команду
EntityDeclHandler
. (Базовая функция в библиотеке Expat объявлена устаревшей.)
-
xmlparser.
EntityDeclHandler
(entityName, is_parameter_entity, value, base, systemId, publicId, notationName)¶ Вызывается для всех объявлений сущности. Для параметров и внутренних объектов value будет представлять собой строка, дающую объявленное содержимое объекта; это будет
None
для внешних сущностей. Параметр notationName будетNone
для проанализированных сущностей, а имя нотации - для неназначенных сущностей. is_parameter_entity будет верным, если сущность является параметрической или false для общих сущностей (большинство приложений должны быть связаны только с общими сущностями). Это доступно только начиная с версии 1.95.0 библиотеки Expat.
-
xmlparser.
NotationDeclHandler
(notationName, base, systemId, publicId)¶ Вызвал объявление нотации. notationName, base, и systemId и publicId - строки, если дали. Если идентификатор public опущен, publicId будет
None
.
-
xmlparser.
StartNamespaceDeclHandler
(prefix, uri)¶ Вызывается, когда элемент содержит объявление пространства имен. Объявления пространства имен обрабатываются перед вызовом
StartElementHandler
для элемента, на который помещаются объявления.
-
xmlparser.
EndNamespaceDeclHandler
(prefix)¶ Вызывается при достижении закрывающего тега для элемента, содержащего объявление пространства имен. Это вызывается один раз для каждого объявления пространства имен на элементе в обратном порядке, для которого
StartNamespaceDeclHandler
был вызван, чтобы указать начало область видимости каждого объявления пространства имен. Звонки к этому обработчик сделаны после соответствующегоEndElementHandler
для конца элемента.
-
xmlparser.
CommentHandler
(data)¶ Звонили за комментариями. data - текст комментария, исключая ведущий
'<!-
-'
и конечный'-
->'
.
-
xmlparser.
StartCdataSectionHandler
()¶ Вызывается в начале раздела CDATA. Это и
EndCdataSectionHandler
необходимы для определения синтаксического начала и конца для разделов CDATA.
-
xmlparser.
EndCdataSectionHandler
()¶ Вызывается в конце раздела CDATA.
-
xmlparser.
DefaultHandler
(data)¶ Требовавшийся любые знаки в документе XML, для которого не был определен никакой применимый обработчик. Это означает знаки, которые являются частью конструкции, о которой можно было сообщить, но для которого поставлялся № обработчик.
-
xmlparser.
DefaultHandlerExpand
(data)¶ Это то же самое, что и
DefaultHandler()
, но не препятствует расширению внутренних сущностей. Ссылка на объект не будет передана обработчик по умолчанию.
-
xmlparser.
NotStandaloneHandler
()¶ Вызывается, если XML-документ не объявлен как автономный документ. Это происходит, когда существует внешнее подмножество или ссылка на сущность параметра, но XML-объявление не устанавливает автономную
yes
в XML- объявлении. Если это обработчик возвращает0
, то парсер вызовет ошибкуXML_ERROR_NOT_STANDALONE
. Если этот обработчик не установлен, никакое исключение не поднято парсер для этого условия.
-
xmlparser.
ExternalEntityRefHandler
(context, base, systemId, publicId)¶ Вызывается для ссылок на внешние объекты. base - текущая база, установленная предыдущим вызовом на
SetBase()
. Идентификаторы public и системы systemId и publicId строки, если они указаны; если идентификатор public не задан, publicId будетNone
. context значение является непрозрачным и должен быть используемый только как описано ниже.Для анализа внешних сущностей этот обработчик должен быть реализован. Это ответственно за создание sub-парсер, использующего
ExternalEntityParserCreate(context)
, инициализируя его с соответствующим колбэки и парсинг сущность. Этот обработчик должен возвращает целое число; если это, возвращает0
, парсер поднимет ошибкуXML_ERROR_EXTERNAL_ENTITY_HANDLING
, иначе парсинг, продолжится.Если эта обработчик не предоставляется, внешние объекты сообщаются
DefaultHandler
колбэк, если они предоставляются.
Исключения ExpatError¶
ExpatError
исключения имеют ряд интересных атрибуты:
-
ExpatError.
code
¶ Внутренний номер ошибки Expat для конкретной ошибки. Словарь
errors.messages
сопоставляет эти номера ошибок с сообщениями об ошибках Expat. Например:from xml.parsers.expat import ParserCreate, ExpatError, errors p = ParserCreate() try: p.Parse(some_xml_document) except ExpatError as err: print("Error:", errors.messages[err.code])
Модуль
errors
также предоставляет константы сообщений об ошибках и словарьcodes
, отображающий эти сообщения обратно на коды об ошибках, см. ниже.
-
ExpatError.
lineno
¶ Номер строки, на которой была обнаружена ошибка. Первая строка нумеруется как
1
.
-
ExpatError.
offset
¶ Смещение символа в строке, в которой произошла ошибка. Первый столбец нумеруется как
0
.
Пример¶
Следующая программа определяет три обработчика, которые просто распечатывают свои аргументы:
import xml.parsers.expat
# 3 handler functions
def start_element(name, attrs):
print('Start element:', name, attrs)
def end_element(name):
print('End element:', name)
def char_data(data):
print('Character data:', repr(data))
p = xml.parsers.expat.ParserCreate()
p.StartElementHandler = start_element
p.EndElementHandler = end_element
p.CharacterDataHandler = char_data
p.Parse("""<?xml version="1.0"?>
<parent id="top"><child1 name="paul">Text goes here</child1>
<child2 name="fred">More text</child2>
</parent>""", 1)
Выходные данные этой программы::
Start element: parent {'id': 'top'}
Start element: child1 {'name': 'paul'}
Character data: 'Text goes here'
End element: child1
Character data: '\n'
Start element: child2 {'name': 'fred'}
Character data: 'More text'
End element: child2
Character data: '\n'
End element: parent
Описание модели контента¶
Модели содержимого описываются с помощью вложенных кортежей. Каждый кортеж содержит четыре значения: тип, квантификатор, имя и кортеж детей. Дочерние элементы - это просто дополнительные описания моделей содержимого.
значения первых двух полей - константы, определенные в модуле xml.parsers.expat.model
. Эти
константы можно собрать в две группы: группу типа модели и группу
квантификатора.
Константы в группе типов модели:
-
xml.parsers.expat.model.
XML_CTYPE_ANY
Элемент, названный именем модели, был объявлен имеющим модель содержимого
ANY
.
-
xml.parsers.expat.model.
XML_CTYPE_CHOICE
Именованный элемент допускает выбор из ряда опций; это используемый для моделей содержимого, таких как
(A | B | C)
.
-
xml.parsers.expat.model.
XML_CTYPE_EMPTY
Элементы, объявленные
EMPTY
, имеют этот тип модели.
-
xml.parsers.expat.model.
XML_CTYPE_MIXED
-
xml.parsers.expat.model.
XML_CTYPE_NAME
-
xml.parsers.expat.model.
XML_CTYPE_SEQ
Модели, представляющие ряд моделей, следующих одна за другой, обозначаются этим типом модели. Это используемый для таких моделей, как
(A, B, C)
.
Константы в группе квантификаторов:
-
xml.parsers.expat.model.
XML_CQUANT_NONE
Модификатор не задан, поэтому он может появиться ровно один раз, как для
A
.
-
xml.parsers.expat.model.
XML_CQUANT_OPT
Модель необязательна: может появиться один раз или вообще нет, как для
A?
.
-
xml.parsers.expat.model.
XML_CQUANT_PLUS
Модель должна выполняться один или несколько раз (например,
A+
).
-
xml.parsers.expat.model.
XML_CQUANT_REP
Модель должна иметь нулевое или большее количество раз, как для
A*
.
Expat константы ошибок¶
В модуле xml.parsers.expat.errors
предусмотрены следующие константы. Эти константы полезны
при интерпретации некоторых атрибуты объектов исключения ExpatError
,
возникших при возникновении ошибки. С тех пор по назад причинам совместимости,
значение констант - ошибка message а не числовая ошибка code, вы
делаете это, сравнивая его code
атрибут с errors.codes[errors.XML_ERROR_CONSTANT_NAME]
.
Модуль errors
содержит следующие атрибуты:
-
xml.parsers.expat.errors.
codes
¶ Словарь, отображающий описания строк на их коды ошибок.
Добавлено в версии 3.2.
-
xml.parsers.expat.errors.
messages
¶ Словарь, отображающий числовые коды ошибок в их строковые описания.
Добавлено в версии 3.2.
-
xml.parsers.expat.errors.
XML_ERROR_ASYNC_ENTITY
¶
-
xml.parsers.expat.errors.
XML_ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REF
¶ Ссылка на объект в атрибут значение ссылается на внешний объект, а не на внутренний объект.
-
xml.parsers.expat.errors.
XML_ERROR_BAD_CHAR_REF
¶ Ссылка символ, ссылающаяся на символ, которая является недопустимой в XML (например, символ
0
или „�
“).
-
xml.parsers.expat.errors.
XML_ERROR_BINARY_ENTITY_REF
¶ Ссылка на объект ссылается на объект, который был объявлен с нотацией, поэтому не может быть проанализирован.
-
xml.parsers.expat.errors.
XML_ERROR_DUPLICATE_ATTRIBUTE
¶ атрибут был используемый несколько раз в тэге начала.
-
xml.parsers.expat.errors.
XML_ERROR_INCORRECT_ENCODING
¶
-
xml.parsers.expat.errors.
XML_ERROR_INVALID_TOKEN
¶ Возникает, когда входной байт не может быть правильно назначен символ; например, байт NUL (значение
0
) во входном потоке UTF-8.
-
xml.parsers.expat.errors.
XML_ERROR_JUNK_AFTER_DOC_ELEMENT
¶ После элемента документа произошло нечто иное, чем пробел.
-
xml.parsers.expat.errors.
XML_ERROR_MISPLACED_XML_PI
¶ XML-объявление найдено в месте, отличном от начала входных данных.
-
xml.parsers.expat.errors.
XML_ERROR_NO_ELEMENTS
¶ Документ не содержит элементов (XML требует, чтобы все документы содержали только один элемент верхнего уровня)..
-
xml.parsers.expat.errors.
XML_ERROR_NO_MEMORY
¶ Expat не удалось выделить внутреннюю память.
-
xml.parsers.expat.errors.
XML_ERROR_PARAM_ENTITY_REF
¶ Найдена ссылка на объект параметра, где она не разрешена.
-
xml.parsers.expat.errors.
XML_ERROR_PARTIAL_CHAR
¶ Во входных данных обнаружена неполная символ.
-
xml.parsers.expat.errors.
XML_ERROR_RECURSIVE_ENTITY_REF
¶ Ссылка на объект содержит другую ссылку на тот же объект; возможно, через другое имя, и, возможно, косвенно.
-
xml.parsers.expat.errors.
XML_ERROR_SYNTAX
¶ Обнаружена неустановленная синтаксическая ошибка.
-
xml.parsers.expat.errors.
XML_ERROR_TAG_MISMATCH
¶ Конечный тег не соответствует самому внутреннему открытому начальному тегу.
-
xml.parsers.expat.errors.
XML_ERROR_UNCLOSED_TOKEN
¶ Какой-либо маркер (например, начальный тег) не был закрыт до конца потока или был обнаружен следующий маркер.
-
xml.parsers.expat.errors.
XML_ERROR_UNDEFINED_ENTITY
¶ Была сделана ссылка на объект, который не был определен.
-
xml.parsers.expat.errors.
XML_ERROR_UNKNOWN_ENCODING
¶ Кодировка документа не поддерживается Expat.
-
xml.parsers.expat.errors.
XML_ERROR_UNCLOSED_CDATA_SECTION
¶ Помеченный раздел CDATA не закрыт.
-
xml.parsers.expat.errors.
XML_ERROR_EXTERNAL_ENTITY_HANDLING
¶
-
xml.parsers.expat.errors.
XML_ERROR_NOT_STANDALONE
¶ парсер определил, что документ не является «автономным», хотя он объявляется в XML-объявлении, а
NotStandaloneHandler
был установлен и возвращенный0
.
-
xml.parsers.expat.errors.
XML_ERROR_UNEXPECTED_STATE
¶
-
xml.parsers.expat.errors.
XML_ERROR_ENTITY_DECLARED_IN_PE
¶
-
xml.parsers.expat.errors.
XML_ERROR_FEATURE_REQUIRES_XML_DTD
¶ Запрошена операция, требующая компиляции поддержки DTD в, но настройка Expat была выполнена без поддержки DTD. Об этом никогда не должна сообщать стандартная сборка модуля
xml.parsers.expat
.
-
xml.parsers.expat.errors.
XML_ERROR_CANT_CHANGE_FEATURE_ONCE_PARSING
¶ Изменение в поведении запрошенный после того, как парсинг начался, который может только быть изменен, прежде чем парсинг начался. Это (в настоящее время) только поднимается
UseForeignDTD()
.
-
xml.parsers.expat.errors.
XML_ERROR_UNBOUND_PREFIX
¶ При включенной обработке пространства имен обнаружен необъявленный префикс.
-
xml.parsers.expat.errors.
XML_ERROR_UNDECLARING_PREFIX
¶ Документ попытался удалить объявление пространства имен, связанное с префиксом.
-
xml.parsers.expat.errors.
XML_ERROR_INCOMPLETE_PE
¶ Объект параметра содержал неполную разметку.
-
xml.parsers.expat.errors.
XML_ERROR_XML_DECL
¶ Документ вообще не содержал элемента документа.
-
xml.parsers.expat.errors.
XML_ERROR_TEXT_DECL
¶ Была ошибка парсинг текстовая декларация во внешней сущности.
-
xml.parsers.expat.errors.
XML_ERROR_PUBLICID
¶ В идентификаторе public найдены недопустимые символы.
-
xml.parsers.expat.errors.
XML_ERROR_SUSPENDED
¶ Запрошенная операция была выполнена на приостановленном парсер, но не разрешена. Это включает в себя попытки предоставить дополнительный ввод или остановить парсер.
-
xml.parsers.expat.errors.
XML_ERROR_NOT_SUSPENDED
¶ Попытка возобновления парсер была предпринята, когда действие парсер не было приостановлено.
-
xml.parsers.expat.errors.
XML_ERROR_ABORTED
¶ Об этом не следует сообщать приложениям Python.
-
xml.parsers.expat.errors.
XML_ERROR_FINISHED
¶ Запрошенная операция выполнена на парсер, которая была завершена парсинг вводе, но не разрешена. Это включает в себя попытки предоставить дополнительный ввод или остановить парсер.
-
xml.parsers.expat.errors.
XML_ERROR_SUSPEND_PE
¶
Сноски
[1] | Кодировка строки, включенная в XML-вывод, должна соответствовать соответствующим стандартам. Например, «UTF-8» действителен, но не «UTF8». См. https://www.w3.org/TR/2006/REC-xml11-20060816/#NT-EncodingDecl и https://www.iana.org/assignments/character-sets/character-sets.xhtml. |