Анимация
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.9 xmllib - обработка XML-документов

Модуль xmllib считается устаревшим - используйте вместо него модуль xml.sax. Этот модуль определяет класс XMLParser, который может служить в качестве базового для класса, реализующего обработку размеченного текста в формате XML3 (Extensible Markup Language, расширяемый язык разметки).

XMLParser ([**keyword args])

Создает и возвращает объект, реализующий обработку текста в формате XML. В настоящий момент воспринимаются следующие именованные аргументы (keyword args):

accept unquoted attributes

Если этот аргумент является истиной, обработчик будет воспринимать значения атрибутов, не заключенных в кавычки. По умолчанию равен 0.

accept missing endtag name

Если этот аргумент является истиной, обработчик будет воспринимать закрывающие безымянные теги (</>). По умолчанию равен 0.

3http: www.w3.org/TR/REC-xml, http: www.w3.org/XML/

getType( name)

Возвращает тип атрибута с именем name (обычно CDATA).

getValue( name)

Возвращает значение атрибута с именем name.

getValueByQName(qname)

Возвращает значения атрибута по его полному имени qname. Для экземпляров класса AttributesImpl этот метод эквивалентен методу getValue().

getNameByQName( qname)

Возвращает имя атрибута (строку или кортеж) по его полному имени qname. Для экземпляров класса AttributesImpl этот метод возвращает свой аргумент без изменений или генерирует исключение KeyError.

getQNameByName( name)

Возвращает полное имя атрибута с именем name. Для экземпляров класса AttributesImpl этот метод возвращает свой аргумент без изменений или генерирует исключение KeyError.

getQNames()

Возвращает список полных имен атрибутов. Для экземпляров класса AttributesImpl этот метод эквивалентен методу getNames() .



29.9. xmllib - обработка XML-документов 405

map case

Если этот аргумент является истиной, обработчик будет приводить имена тегов и атрибутов к нижнему регистру. По умолчанию равен 0.

accept utf8

Если этот аргумент является истиной, обработчик допускает использование входной кодировки UTF-8. По умолчанию равен 0.

translate attribute references

Если этот аргумент является истиной, обработчик будет заменять ссылки на символы и сущности в значениях атрибутов. По умолчанию равен 1.

Класс XMLParser имеет следующие интерфейсные атрибуты данных и методы, которые определяют тип документа (DTD):

attributes

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

elements

Отображение имен элементов к кортежам из функций (или других объектов, поддерживающих вызов), предназначенных для обработки открывающего и закрывающего тега для этого элемента или None, если должен быть вызван метод unknown starttag() или unknown endtag(). Вам следует переопределить этот атрибут в производном классе - в исходной реализации он равен пустому словарю.

entitydefs

Отображение имен сущностей к их значениям. В исходной реализации равен словарю, в котором есть записи с ключами lt, gt, amp, quot и apos (обязательный набор для всех типов документов).

reset()

Возвращает экземпляр в исходное состояние. Все необработанные данные теряются. Этот метод неявно вызывается при инициализации.

setnomoretags()

Останавливает обработку тегов. Весь последующий текст воспринимается без обработки (CDATA).

setliteral()

Временно приостанавливает обработку тегов. Последующий текст воспринимается без обработки (CDATA). Обработчик автоматически выходит из этого режима, как только дойдет до закрывающего тега для последнего открытого.

feed( data)

Передает экземпляру размеченный текст data для обработки. Обрабатываются



только завершенные данные, остальное остается в буфере до тех пор, пока не будет передана следующая порция данных или не будет вызван метод close() .

close()

Завершает обработку всех данных в буфере. Вы можете переопределить этот метод в производном классе, добавив дополнительные действия. Переопределенный метод всегда должен вызывать исходную версию метода.

translate references( data)

Преобразует все ссылки на символы (&#ref;) и сущности (&ref;) в строке data и возвращает полученный текст.

getnamespace()

Возвращает отображение аббревиатур для (активных в настоящий момент) пространств имен к их URI (Uniform Resource Identifier, универсальный идентификатор ресурса).

handle xml( encoding, standalone)

Вызывается для обработки тега <?xml ...?>. В качестве аргументов используются значения одноименных атрибутов тега (по умолчанию используются None и строка no соответственно). Исходная реализация ничего не делает.

handle doctype( tag, pubid, syslit, data)

Вызывается для обработки объявления типа документа. Аргумент tag является строкой с именем корневого элемента, pubid - формальный публичный идентификатор (или None, если не задан), syslit - системный идентификатор и data - необработанный текст встроенного в документ DTD (Document Type Definition, определение типа документа) или None, если документ не содержит DTD. Исходная реализация ничего не делает.

handle starttag(tag, method, attributes)

Вызывается для обработки открывающих тегов, для которых задан обработчик в атрибуте elements. Аргумент tag является строкой с именем тега, method - функция (метод), предназначенная для обработки открывающего тега, и attributes - словарь, отображающий имена атрибутов, найденных внутри угловых скобок тега, к их значениям (после обработки ссылок на символы и сущности). Например, для обработки открывающего тега <A HREF="http: www.cwi.nl/ вызывается obj.handle starttag(A, obj.elements[A][0], {HREF: http: www.cwi.nl/}). Исходная реализация метода handle starttag вызывает method( attributes) .

handle endtag( tag, method)

Вызывается для обработки закрывающих тегов, для которых задан обработчик в атрибуте elements. Аргумент tag является строкой с именем тега, method - функция (метод), предназначенная для обработки закрывающего тега. Например, для обработки закрывающего тега </A> вызывается obj .handle endtag(A, obj .elements[A][1]) . Исходная реализация метода handle endtag просто вызывает method() .



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