/
tree.pxd
332 lines (297 loc) · 13.5 KB
/
tree.pxd
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
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
from cstd cimport FILE
cdef extern from "lxml-version.h":
cdef char* LXML_VERSION_STRING
cdef extern from "libxml/xmlversion.h":
cdef char* xmlParserVersion
cdef int LIBXML_VERSION
cdef extern from "libxml/encoding.h":
ctypedef enum xmlCharEncoding:
XML_CHAR_ENCODING_ERROR = -1 # No char encoding detected
XML_CHAR_ENCODING_NONE = 0 # No char encoding detected
XML_CHAR_ENCODING_UTF8 = 1 # UTF-8
XML_CHAR_ENCODING_UTF16LE = 2 # UTF-16 little endian
XML_CHAR_ENCODING_UTF16BE = 3 # UTF-16 big endian
XML_CHAR_ENCODING_UCS4LE = 4 # UCS-4 little endian
XML_CHAR_ENCODING_UCS4BE = 5 # UCS-4 big endian
XML_CHAR_ENCODING_EBCDIC = 6 # EBCDIC uh!
XML_CHAR_ENCODING_UCS4_2143 = 7 # UCS-4 unusual ordering
XML_CHAR_ENCODING_UCS4_3412 = 8 # UCS-4 unusual ordering
XML_CHAR_ENCODING_UCS2 = 9 # UCS-2
XML_CHAR_ENCODING_8859_1 = 10 # ISO-8859-1 ISO Latin 1
XML_CHAR_ENCODING_8859_2 = 11 # ISO-8859-2 ISO Latin 2
XML_CHAR_ENCODING_8859_3 = 12 # ISO-8859-3
XML_CHAR_ENCODING_8859_4 = 13 # ISO-8859-4
XML_CHAR_ENCODING_8859_5 = 14 # ISO-8859-5
XML_CHAR_ENCODING_8859_6 = 15 # ISO-8859-6
XML_CHAR_ENCODING_8859_7 = 16 # ISO-8859-7
XML_CHAR_ENCODING_8859_8 = 17 # ISO-8859-8
XML_CHAR_ENCODING_8859_9 = 18 # ISO-8859-9
XML_CHAR_ENCODING_2022_JP = 19 # ISO-2022-JP
XML_CHAR_ENCODING_SHIFT_JIS = 20 # Shift_JIS
XML_CHAR_ENCODING_EUC_JP = 21 # EUC-JP
XML_CHAR_ENCODING_ASCII = 22 # pure ASCII
ctypedef struct xmlCharEncodingHandler
cdef xmlCharEncodingHandler* xmlFindCharEncodingHandler(char* name) nogil
cdef xmlCharEncodingHandler* xmlGetCharEncodingHandler(
xmlCharEncoding enc) nogil
cdef int xmlCharEncCloseFunc(xmlCharEncodingHandler* handler) nogil
cdef xmlCharEncoding xmlDetectCharEncoding(char* text, int len) nogil
cdef char* xmlGetCharEncodingName(xmlCharEncoding enc) nogil
cdef xmlCharEncoding xmlParseCharEncoding(char* name) nogil
cdef extern from "libxml/chvalid.h":
cdef int xmlIsChar_ch(char c) nogil
cdef extern from "libxml/hash.h":
ctypedef struct xmlHashTable
ctypedef void xmlHashScanner(void* payload, void* data, char* name) # may require GIL!
void xmlHashScan(xmlHashTable* table, xmlHashScanner f, void* data) nogil
void* xmlHashLookup(xmlHashTable* table, char* name) nogil
cdef extern from *: # actually "libxml/dict.h"
# libxml/dict.h appears to be broken to include in C
ctypedef struct xmlDict
cdef char* xmlDictLookup(xmlDict* dict, char* name, int len) nogil
cdef char* xmlDictExists(xmlDict* dict, char* name, int len) nogil
cdef int xmlDictOwns(xmlDict* dict, char* name) nogil
cdef extern from "libxml/tree.h":
ctypedef struct xmlDoc
ctypedef struct xmlAttr
ctypedef struct xmlNotationTable
ctypedef enum xmlElementType:
XML_ELEMENT_NODE= 1
XML_ATTRIBUTE_NODE= 2
XML_TEXT_NODE= 3
XML_CDATA_SECTION_NODE= 4
XML_ENTITY_REF_NODE= 5
XML_ENTITY_NODE= 6
XML_PI_NODE= 7
XML_COMMENT_NODE= 8
XML_DOCUMENT_NODE= 9
XML_DOCUMENT_TYPE_NODE= 10
XML_DOCUMENT_FRAG_NODE= 11
XML_NOTATION_NODE= 12
XML_HTML_DOCUMENT_NODE= 13
XML_DTD_NODE= 14
XML_ELEMENT_DECL= 15
XML_ATTRIBUTE_DECL= 16
XML_ENTITY_DECL= 17
XML_NAMESPACE_DECL= 18
XML_XINCLUDE_START= 19
XML_XINCLUDE_END= 20
ctypedef struct xmlNs:
char* href
char* prefix
xmlNs* next
ctypedef struct xmlNode:
void* _private
xmlElementType type
char* name
xmlNode* children
xmlNode* last
xmlNode* parent
xmlNode* next
xmlNode* prev
xmlDoc* doc
char* content
xmlAttr* properties
xmlNs* ns
xmlNs* nsDef
unsigned short line
ctypedef struct xmlDtd:
char* name
char* ExternalID
char* SystemID
void* notations
void* entities
void* pentities
void* attributes
void* elements
xmlNode* children
xmlNode* last
xmlDoc* doc
ctypedef struct xmlDoc:
xmlElementType type
char* name
xmlNode* children
xmlNode* last
xmlNode* parent
xmlNode* next
xmlNode* prev
xmlDoc* doc
xmlDict* dict
xmlHashTable* ids
int standalone
char* version
char* encoding
char* URL
void* _private
xmlDtd* intSubset
xmlDtd* extSubset
ctypedef struct xmlAttr:
void* _private
xmlElementType type
char* name
xmlNode* children
xmlNode* last
xmlNode* parent
xmlAttr* next
xmlAttr* prev
xmlDoc* doc
xmlNs* ns
ctypedef struct xmlElement:
xmlElementType type
char* name
xmlNode* children
xmlNode* last
xmlNode* parent
xmlNode* next
xmlNode* prev
xmlDoc* doc
ctypedef struct xmlID:
char* value
xmlAttr* attr
xmlDoc* doc
ctypedef struct xmlBuffer
ctypedef struct xmlOutputBuffer:
xmlBuffer* buffer
xmlBuffer* conv
int error
cdef void xmlFreeDoc(xmlDoc* cur) nogil
cdef void xmlFreeDtd(xmlDtd* cur) nogil
cdef void xmlFreeNode(xmlNode* cur) nogil
cdef void xmlFreeNsList(xmlNs* ns) nogil
cdef void xmlFreeNs(xmlNs* ns) nogil
cdef void xmlFree(char* buf) nogil
cdef xmlNode* xmlNewNode(xmlNs* ns, char* name) nogil
cdef xmlNode* xmlNewDocText(xmlDoc* doc, char* content) nogil
cdef xmlNode* xmlNewDocComment(xmlDoc* doc, char* content) nogil
cdef xmlNode* xmlNewDocPI(xmlDoc* doc, char* name, char* content) nogil
cdef xmlNode* xmlNewReference(xmlDoc* doc, char* name) nogil
cdef xmlNode* xmlNewCDataBlock(xmlDoc* doc, char* text, int len) nogil
cdef xmlNs* xmlNewNs(xmlNode* node, char* href, char* prefix) nogil
cdef xmlNode* xmlAddChild(xmlNode* parent, xmlNode* cur) nogil
cdef xmlNode* xmlReplaceNode(xmlNode* old, xmlNode* cur) nogil
cdef xmlNode* xmlAddPrevSibling(xmlNode* cur, xmlNode* elem) nogil
cdef xmlNode* xmlAddNextSibling(xmlNode* cur, xmlNode* elem) nogil
cdef xmlNode* xmlNewDocNode(xmlDoc* doc, xmlNs* ns,
char* name, char* content) nogil
cdef xmlDoc* xmlNewDoc(char* version) nogil
cdef xmlAttr* xmlNewProp(xmlNode* node, char* name, char* value) nogil
cdef xmlAttr* xmlNewNsProp(xmlNode* node, xmlNs* ns,
char* name, char* value) nogil
cdef char* xmlGetNoNsProp(xmlNode* node, char* name) nogil
cdef char* xmlGetNsProp(xmlNode* node, char* name, char* nameSpace) nogil
cdef void xmlSetNs(xmlNode* node, xmlNs* ns) nogil
cdef xmlAttr* xmlSetProp(xmlNode* node, char* name, char* value) nogil
cdef xmlAttr* xmlSetNsProp(xmlNode* node, xmlNs* ns,
char* name, char* value) nogil
cdef int xmlRemoveProp(xmlAttr* cur) nogil
cdef char* xmlGetNodePath(xmlNode* node) nogil
cdef void xmlDocDumpMemory(xmlDoc* cur, char** mem, int* size) nogil
cdef void xmlDocDumpMemoryEnc(xmlDoc* cur, char** mem, int* size,
char* encoding) nogil
cdef int xmlSaveFileTo(xmlOutputBuffer* out, xmlDoc* cur,
char* encoding) nogil
cdef void xmlUnlinkNode(xmlNode* cur) nogil
cdef xmlNode* xmlDocSetRootElement(xmlDoc* doc, xmlNode* root) nogil
cdef xmlNode* xmlDocGetRootElement(xmlDoc* doc) nogil
cdef void xmlSetTreeDoc(xmlNode* tree, xmlDoc* doc) nogil
cdef xmlAttr* xmlHasProp(xmlNode* node, char* name) nogil
cdef xmlAttr* xmlHasNsProp(xmlNode* node, char* name, char* nameSpace) nogil
cdef char* xmlNodeGetContent(xmlNode* cur) nogil
cdef int xmlNodeBufGetContent(xmlBuffer* buffer, xmlNode* cur) nogil
cdef xmlNs* xmlSearchNs(xmlDoc* doc, xmlNode* node, char* prefix) nogil
cdef xmlNs* xmlSearchNsByHref(xmlDoc* doc, xmlNode* node, char* href) nogil
cdef int xmlIsBlankNode(xmlNode* node) nogil
cdef long xmlGetLineNo(xmlNode* node) nogil
cdef void xmlElemDump(FILE* f, xmlDoc* doc, xmlNode* cur) nogil
cdef void xmlNodeDumpOutput(xmlOutputBuffer* buf,
xmlDoc* doc, xmlNode* cur, int level,
int format, char* encoding) nogil
cdef void xmlNodeSetName(xmlNode* cur, char* name) nogil
cdef void xmlNodeSetContent(xmlNode* cur, char* content) nogil
cdef xmlDtd* xmlCopyDtd(xmlDtd* dtd) nogil
cdef xmlDoc* xmlCopyDoc(xmlDoc* doc, int recursive) nogil
cdef xmlNode* xmlCopyNode(xmlNode* node, int extended) nogil
cdef xmlNode* xmlDocCopyNode(xmlNode* node, xmlDoc* doc, int extended) nogil
cdef int xmlReconciliateNs(xmlDoc* doc, xmlNode* tree) nogil
cdef xmlNs* xmlNewReconciliedNs(xmlDoc* doc, xmlNode* tree, xmlNs* ns) nogil
cdef xmlBuffer* xmlBufferCreate() nogil
cdef void xmlBufferWriteChar(xmlBuffer* buf, char* string) nogil
cdef void xmlBufferFree(xmlBuffer* buf) nogil
cdef char* xmlBufferContent(xmlBuffer* buf) nogil
cdef int xmlBufferLength(xmlBuffer* buf) nogil
cdef int xmlKeepBlanksDefault(int val) nogil
cdef char* xmlNodeGetBase(xmlDoc* doc, xmlNode* node) nogil
cdef void xmlNodeSetBase(xmlNode* node, char* uri) nogil
cdef int xmlValidateNCName(char* value, int space) nogil
cdef extern from "libxml/uri.h":
cdef char* xmlBuildURI(char* href, char* base) nogil
cdef extern from "libxml/HTMLtree.h":
cdef void htmlNodeDumpFormatOutput(xmlOutputBuffer* buf,
xmlDoc* doc, xmlNode* cur,
char* encoding, int format) nogil
cdef xmlDoc* htmlNewDoc(char* uri, char* externalID) nogil
cdef extern from "libxml/valid.h":
cdef xmlAttr* xmlGetID(xmlDoc* doc, char* ID) nogil
cdef void xmlDumpNotationTable(xmlBuffer* buffer,
xmlNotationTable* table) nogil
cdef extern from "libxml/xmlIO.h":
cdef int xmlOutputBufferWriteString(xmlOutputBuffer* out, char* str) nogil
cdef int xmlOutputBufferWrite(xmlOutputBuffer* out,
int len, char* str) nogil
cdef int xmlOutputBufferFlush(xmlOutputBuffer* out) nogil
cdef int xmlOutputBufferClose(xmlOutputBuffer* out) nogil
ctypedef int (*xmlInputReadCallback)(void* context,
char* buffer, int len)
ctypedef int (*xmlInputCloseCallback)(void* context)
ctypedef int (*xmlOutputWriteCallback)(void* context,
char* buffer, int len)
ctypedef int (*xmlOutputCloseCallback)(void* context)
cdef xmlOutputBuffer* xmlAllocOutputBuffer(
xmlCharEncodingHandler* encoder) nogil
cdef xmlOutputBuffer* xmlOutputBufferCreateIO(
xmlOutputWriteCallback iowrite,
xmlOutputCloseCallback ioclose,
void * ioctx,
xmlCharEncodingHandler* encoder) nogil
cdef xmlOutputBuffer* xmlOutputBufferCreateFile(
FILE* file, xmlCharEncodingHandler* encoder) nogil
cdef xmlOutputBuffer* xmlOutputBufferCreateFilename(
char* URI, xmlCharEncodingHandler* encoder, int compression) nogil
cdef extern from "libxml/xmlsave.h":
ctypedef struct xmlSaveCtxt
ctypedef enum xmlSaveOption:
XML_SAVE_FORMAT = 1 # format save output (2.6.17)
XML_SAVE_NO_DECL = 2 # drop the xml declaration (2.6.21)
XML_SAVE_NO_EMPTY = 4 # no empty tags (2.6.22)
XML_SAVE_NO_XHTML = 8 # disable XHTML1 specific rules (2.6.22)
cdef xmlSaveCtxt* xmlSaveToFilename(char* filename, char* encoding,
int options) nogil
cdef xmlSaveCtxt* xmlSaveToBuffer(xmlBuffer* buffer, char* encoding,
int options) nogil # libxml2 2.6.23
cdef long xmlSaveDoc(xmlSaveCtxt* ctxt, xmlDoc* doc) nogil
cdef long xmlSaveTree(xmlSaveCtxt* ctxt, xmlNode* node) nogil
cdef int xmlSaveClose(xmlSaveCtxt* ctxt) nogil
cdef int xmlSaveFlush(xmlSaveCtxt* ctxt) nogil
cdef int xmlSaveSetAttrEscape(xmlSaveCtxt* ctxt, void* escape_func) nogil
cdef int xmlSaveSetEscape(xmlSaveCtxt* ctxt, void* escape_func) nogil
cdef extern from "libxml/globals.h":
cdef int xmlThrDefKeepBlanksDefaultValue(int onoff) nogil
cdef int xmlThrDefLineNumbersDefaultValue(int onoff) nogil
cdef int xmlThrDefIndentTreeOutput(int onoff) nogil
cdef extern from "libxml/xmlstring.h":
cdef char* xmlStrdup(char* cur) nogil
cdef extern from "libxml/xmlmemory.h":
cdef void* xmlMalloc(size_t size) nogil
cdef int xmlMemBlocks() nogil
cdef extern from "etree_defs.h":
cdef bint _isElement(xmlNode* node) nogil
cdef bint _isElementOrXInclude(xmlNode* node) nogil
cdef char* _getNs(xmlNode* node) nogil
cdef void BEGIN_FOR_EACH_ELEMENT_FROM(xmlNode* tree_top,
xmlNode* start_node,
bint inclusive) nogil
cdef void END_FOR_EACH_ELEMENT_FROM(xmlNode* start_node) nogil
cdef void BEGIN_FOR_EACH_FROM(xmlNode* tree_top,
xmlNode* start_node,
bint inclusive) nogil
cdef void END_FOR_EACH_FROM(xmlNode* start_node) nogil