Commit e32ceb93f425ee852021ccda157fca923a1046b0

Alexey Neyman 2013-02-20T18:28:25

Python bindings: DOM casts everything to xmlNode I noticed another issue with Python bindings of libxml: the access methods do not cast the pointers to specific classes such as xmlDtd, xmlEntityDecl, etc. For example, with the following document: <?xml version="1.0"?> <!DOCTYPE root [<!ELEMENT root EMPTY>]> <root/> the following script: import libxml2 doc = libxml2.readFile("c.xml", None, libxml2.XML_PARSE_DTDLOAD) print repr(doc.children) prints: <xmlNode (root) object at 0xb74963ec> With properly cast nodes, it outputs the following: <xmlDtd (root) object at 0xb746352c> The latter object (xmlDtd) enables one to use DTD-specific methods such as debugDumpDTD(), copyDTD(), and so on.