Анимация
JavaScript


Главная  Библионтека 

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 [ 124 ] 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145

29.4. xml.parsers.expat - быстрая обработка ... 389

<?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/ eleml elem2

error

Исключения этого класса генерируются, если XML-документ содержит ошибки. errors

Подмодуль, в котором определены константы вида XML ERR0R * для возможных ошибок обработки. Вы можете использовать их для сравнения со значением атрибута ErrorCode объектов, возвращаемых функцией-конструктором ParserCreate().

XMLParserType

Тип объектов, возвращаемых функцией ParserCreate().

Объекты, возвращаемые функцией-конструктором ParserCreate() , имеют следующие методы:

Parse( data [, isfinal ])

Обрабатывает содержимое строки data, вызывая соответствующие функции. При последнем вызове аргумент isfinal должен являться истиной.

ParseFile( file)

Считывает данные из файла, представленного файловым или подобным объектом file (должен поддерживать вызов метода read() с одним аргументом, возвращающим пустую строку, если больше нет данных).

SetBase(base)

Устанавливает базовый адрес, который должен быть использован для относительных URI в системных объявлениях: он будет передан в качестве аргумента base функциям ExternalEntityRefHandler, NotationDeclHandler и UnparsedEntityDeclHandler.

GetBase()

Возвращает строку с базовым адресом, установленным ранее с помощью метода SetBase(), или None, если метод SetBase() не был использован.

Объекты, возвращаемые функцией-конструктором ParserCreate() , имеют следующие атрибуты:



returns unicode

Если этот атрибут равен 1 (по умолчанию), функциям-обработчикам, описанным ниже, будут передаваться строки Unicode, если же он равен 0 - обычные строки, содержащие данные в кодировке UTF-8. Вы можете изменять значение этого атрибута в любое время, задавая таким образом тип результата.

Значения следующих атрибутов относятся к последней ошибке. Эти атрибуты имеют корректные значения только после того, как метод Parse() или ParseFile() сгенерировал исключение error.

ErrorByteIndex

Индекс (в байтах), указывающий на место, в котором возникла ошибка.

ErrorCode

Числовой код ошибки. Вы можете использовать это значение в качестве аргумента функции ErrorString() или сравнивать его со значениями констант, определенных в подмодуле errors.

ErrorColumnNumber

Позиция в строке, в которой возникла ошибка.

ErrorLineNumber

Номер строки, в которой возникла ошибка.

Ниже приведен список обработчиков, которые Вы можете установить для объекта obj с помощью инструкций вида obj. handler = func, где handler должен быть одним из перечисленных атрибутов и func - объектом, поддерживающим вызов с указанным количеством аргументов. Все аргументы, если не указано иного, являются строками.

StartElementHandler( name, attributes)

Вызывается для обработки открывающего тега каждого элемента. Аргумент name содержит имя элемента и attributes - словарь, отображающий имена атрибутов к их значениям.

EndElementHandler( name)

Вызывается для обработки закрывающего тега каждого элемента. Аргумент name содержит имя элемента.

ProcessingInstructionHandler( name, data)

Вызывается для каждой инструкции обработки (PI, Processing Instruction) в виде <?name data?> (но не для <?xml data?>).

CharacterDataHandler( data)

Вызывается для обработки простого текста.

UnparsedEntityDeclHandler(entityName, base, systemId,

publicId, notationName) Вызывается для необрабатываемых объявлений сущностей (NDATA).



29.4. xml.parsers.expat - быстрая обработка ... 391

NotationDeclHandler(notationName, base, systemId,

publicId)

Вызывается для обработки объявлений примечаний (<!NOTATlON ...>).

StartNamespaceDeclHandler( prefix, uri )

Вызывается, если элемент (открывающий тег) содержит объявление пространства имен.

EndNamespaceDeclHandler( prefix)

Вызывается для закрывающего тега элемента, содержащего объявление пространства имен.

CommentHandler( data)

Вызывается для комментариев.

StartCdataSectionHandler()

Вызывается в начале секции CDATA.

EndCdataSectionHandler()

Вызывается в конце секции CDATA.

DefaultHandler( data)

Вызывается для частей XML-документа, для которых не определен соответствующий обработчик. Части документа передаются в качестве аргумента data в исходном виде.

DefaultHandlerExpand( data)

Вызывается для частей XML-документа, для которых не определен соответствующий обработчик. Части документа передаются в качестве аргумента data после замены ссылок на сущности.

NotStandaloneHandler()

Вызывается, если XML-документ был объявлен как несамостоятельный (standalone="no" в заголовке).

ExternalEntityRefHandler( context , base, systemId,

publicId)

Вызывается для обработки ссылок на внешние сущности. Приведем простейший пример использования модуля:

from xml.parsers import expat

def start element(name, attrs):

print Начало элемента:, name, attrs def end element(name):

print Конец элемента:, name def char data(data):

print Символьные данные:, repr(data)



0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 [ 124 ] 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145