from libc cimport stdio
from libc.string cimport const_char, const_uchar
cdef extern from "lxml-version.h":
# deprecated declaration, use etreepublic.pxd instead
cdef char* LXML_VERSION_STRING
cdef extern from "libxml/xmlversion.h":
cdef const_char* xmlParserVersion
cdef int LIBXML_VERSION
cdef extern from "libxml/xmlstring.h":
ctypedef unsigned char xmlChar
ctypedef const xmlChar const_xmlChar "const xmlChar"
cdef int xmlStrlen(const_xmlChar* str) nogil
cdef xmlChar* xmlStrdup(const_xmlChar* cur) nogil
cdef int xmlStrncmp(const_xmlChar* str1, const_xmlChar* str2, int length) nogil
cdef int xmlStrcmp(const_xmlChar* str1, const_xmlChar* str2) nogil
cdef int xmlStrcasecmp(const xmlChar *str1, const xmlChar *str2) nogil
cdef const_xmlChar* xmlStrstr(const_xmlChar* str1, const_xmlChar* str2) nogil
cdef const_xmlChar* xmlStrchr(const_xmlChar* str1, xmlChar ch) nogil
cdef const_xmlChar* _xcstr "(const xmlChar*)PyBytes_AS_STRING" (object s)
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(const_xmlChar* text, int len) nogil
cdef const_char* xmlGetCharEncodingName(xmlCharEncoding enc) nogil
cdef xmlCharEncoding xmlParseCharEncoding(char* name) nogil
ctypedef int (*xmlCharEncodingOutputFunc)(
unsigned char *out_buf, int *outlen, const_uchar *in_buf, int *inlen)
cdef extern from "libxml/chvalid.h":
cdef int xmlIsChar_ch(char c) nogil
cdef int xmlIsCharQ(int ch) nogil
cdef extern from "libxml/hash.h":
ctypedef struct xmlHashTable
ctypedef void (*xmlHashScanner)(void* payload, void* data, const_xmlChar* name) # may require GIL!
void xmlHashScan(xmlHashTable* table, xmlHashScanner f, void* data) nogil
void* xmlHashLookup(xmlHashTable* table, const_xmlChar* name) nogil
ctypedef void (*xmlHashDeallocator)(void *payload, xmlChar *name)
cdef xmlHashTable* xmlHashCreate(int size)
cdef xmlHashTable* xmlHashCreateDict(int size, xmlDict *dict)
cdef int xmlHashSize(xmlHashTable* table)
cdef void xmlHashFree(xmlHashTable* table, xmlHashDeallocator f)
cdef extern from *: # actually "libxml/dict.h"
# libxml/dict.h appears to be broken to include in C
ctypedef struct xmlDict
cdef const_xmlChar* xmlDictLookup(xmlDict* dict, const_xmlChar* name, int len) nogil
cdef const_xmlChar* xmlDictExists(xmlDict* dict, const_xmlChar* name, int len) nogil
cdef int xmlDictOwns(xmlDict* dict, const_xmlChar* name) nogil
cdef size_t xmlDictSize(xmlDict* dict) 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 enum xmlElementTypeVal:
XML_ELEMENT_TYPE_UNDEFINED= 0
XML_ELEMENT_TYPE_EMPTY= 1
XML_ELEMENT_TYPE_ANY= 2
XML_ELEMENT_TYPE_MIXED= 3
XML_ELEMENT_TYPE_ELEMENT= 4
ctypedef enum xmlElementContentType:
XML_ELEMENT_CONTENT_PCDATA= 1
XML_ELEMENT_CONTENT_ELEMENT= 2
XML_ELEMENT_CONTENT_SEQ= 3
XML_ELEMENT_CONTENT_OR= 4
ctypedef enum xmlElementContentOccur:
XML_ELEMENT_CONTENT_ONCE= 1
XML_ELEMENT_CONTENT_OPT= 2
XML_ELEMENT_CONTENT_MULT= 3
XML_ELEMENT_CONTENT_PLUS= 4
ctypedef enum xmlAttributeType:
XML_ATTRIBUTE_CDATA = 1
XML_ATTRIBUTE_ID= 2
XML_ATTRIBUTE_IDREF= 3
XML_ATTRIBUTE_IDREFS= 4
XML_ATTRIBUTE_ENTITY= 5
XML_ATTRIBUTE_ENTITIES= 6
XML_ATTRIBUTE_NMTOKEN= 7
XML_ATTRIBUTE_NMTOKENS= 8
XML_ATTRIBUTE_ENUMERATION= 9
XML_ATTRIBUTE_NOTATION= 10
ctypedef enum xmlAttributeDefault:
XML_ATTRIBUTE_NONE= 1
XML_ATTRIBUTE_REQUIRED= 2
XML_ATTRIBUTE_IMPLIED= 3
XML_ATTRIBUTE_FIXED= 4
ctypedef enum xmlEntityType:
XML_INTERNAL_GENERAL_ENTITY= 1
XML_EXTERNAL_GENERAL_PARSED_ENTITY= 2
XML_EXTERNAL_GENERAL_UNPARSED_ENTITY= 3
XML_INTERNAL_PARAMETER_ENTITY= 4
XML_EXTERNAL_PARAMETER_ENTITY= 5
XML_INTERNAL_PREDEFINED_ENTITY= 6
ctypedef struct xmlNs:
const_xmlChar* href
const_xmlChar* prefix
xmlNs* next
ctypedef struct xmlNode:
void* _private
xmlElementType type
const_xmlChar* name
xmlNode* children
xmlNode* last
xmlNode* parent
xmlNode* next
xmlNode* prev
xmlDoc* doc
xmlChar* content
xmlAttr* properties
xmlNs* ns
xmlNs* nsDef
unsigned short line
ctypedef struct xmlElementContent:
xmlElementContentType type
xmlElementContentOccur ocur
const_xmlChar *name
xmlElementContent *c1
xmlElementContent *c2
xmlElementContent *parent
const_xmlChar *prefix
ctypedef struct xmlEnumeration:
xmlEnumeration *next
const_xmlChar *name
ctypedef struct xmlAttribute:
void* _private
xmlElementType type
const_xmlChar* name
xmlNode* children
xmlNode* last
xmlDtd* parent
xmlNode* next
xmlNode* prev
xmlDoc* doc
xmlAttribute* nexth
xmlAttributeType atype
xmlAttributeDefault def_ "def"
const_xmlChar* defaultValue
xmlEnumeration* tree
const_xmlChar* prefix
const_xmlChar* elem
ctypedef struct xmlElement:
void* _private
xmlElementType type
const_xmlChar* name
xmlNode* children
xmlNode* last
xmlNode* parent
xmlNode* next
xmlNode* prev
xmlDoc* doc
xmlElementTypeVal etype
xmlElementContent* content
xmlAttribute* attributes
const_xmlChar* prefix
void *contModel
ctypedef struct xmlEntity:
void* _private
xmlElementType type
const_xmlChar* name
xmlNode* children
xmlNode* last
xmlDtd* parent
xmlNode* next
xmlNode* prev
xmlDoc* doc
xmlChar* orig
xmlChar* content
int length
xmlEntityType etype
const_xmlChar* ExternalID
const_xmlChar* SystemID
xmlEntity* nexte
const_xmlChar* URI
int owner
int checked
ctypedef struct xmlDtd:
const_xmlChar* name
const_xmlChar* ExternalID
const_xmlChar* 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
const_xmlChar* version
const_xmlChar* encoding
const_xmlChar* URL
void* _private
xmlDtd* intSubset
xmlDtd* extSubset
ctypedef struct xmlAttr:
void* _private
xmlElementType type
const_xmlChar* name
xmlNode* children
xmlNode* last
xmlNode* parent
xmlAttr* next
xmlAttr* prev
xmlDoc* doc
xmlNs* ns
ctypedef struct xmlID:
const_xmlChar* value
const_xmlChar* name
xmlAttr* attr
xmlDoc* doc
ctypedef struct xmlBuffer
ctypedef struct xmlBuf # new in libxml2 2.9
ctypedef struct xmlOutputBuffer:
xmlBuf* buffer
xmlBuf* conv
int error
const_xmlChar* XML_XML_NAMESPACE
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(void* buf) nogil
cdef xmlNode* xmlNewNode(xmlNs* ns, const_xmlChar* name) nogil
cdef xmlNode* xmlNewDocText(xmlDoc* doc, const_xmlChar* content) nogil
cdef xmlNode* xmlNewDocComment(xmlDoc* doc, const_xmlChar* content) nogil
cdef xmlNode* xmlNewDocPI(xmlDoc* doc, const_xmlChar* name, const_xmlChar* content) nogil
cdef xmlNode* xmlNewReference(xmlDoc* doc, const_xmlChar* name) nogil
cdef xmlNode* xmlNewCDataBlock(xmlDoc* doc, const_xmlChar* text, int len) nogil
cdef xmlNs* xmlNewNs(xmlNode* node, const_xmlChar* href, const_xmlChar* 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,
const_xmlChar* name, const_xmlChar* content) nogil
cdef xmlDoc* xmlNewDoc(const_xmlChar* version) nogil
cdef xmlAttr* xmlNewProp(xmlNode* node, const_xmlChar* name, const_xmlChar* value) nogil
cdef xmlAttr* xmlNewNsProp(xmlNode* node, xmlNs* ns,
const_xmlChar* name, const_xmlChar* value) nogil
cdef xmlChar* xmlGetNoNsProp(xmlNode* node, const_xmlChar* name) nogil
cdef xmlChar* xmlGetNsProp(xmlNode* node, const_xmlChar* name, const_xmlChar* nameSpace) nogil
cdef void xmlSetNs(xmlNode* node, xmlNs* ns) nogil
cdef xmlAttr* xmlSetProp(xmlNode* node, const_xmlChar* name, const_xmlChar* value) nogil
cdef xmlAttr* xmlSetNsProp(xmlNode* node, xmlNs* ns,
const_xmlChar* name, const_xmlChar* value) nogil
cdef int xmlRemoveProp(xmlAttr* cur) nogil
cdef xmlChar* 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
Loading ...