mirror of
https://gitlab.gnome.org/GNOME/libxml2.git
synced 2025-07-28 00:21:53 +03:00
fixed a problem with the HTML parser pointed by Gary Benson sdding the
* python/generator.py python/libxml2class.txt : fixed a problem with the HTML parser pointed by Gary Benson * python/tests/Makefile.am python/tests/pushSAXhtml.py: sdding the example Daniel
This commit is contained in:
@ -530,6 +530,8 @@ classes_type = {
|
||||
"xmlXPathParserContextPtr": ("._o", "xpathParserContext(_obj=%s)", "xpathParserContext"),
|
||||
"xmlParserCtxtPtr": ("._o", "parserCtxt(_obj=%s)", "parserCtxt"),
|
||||
"xmlParserCtxt *": ("._o", "parserCtxt(_obj=%s)", "parserCtxt"),
|
||||
"htmlParserCtxtPtr": ("._o", "parserCtxt(_obj=%s)", "parserCtxt"),
|
||||
"htmlParserCtxt *": ("._o", "parserCtxt(_obj=%s)", "parserCtxt"),
|
||||
"xmlCatalogPtr": ("._o", "catalog(_obj=%s)", "catalog"),
|
||||
"xmlURIPtr": ("._o", "URI(_obj=%s)", "URI"),
|
||||
}
|
||||
|
@ -6,13 +6,9 @@
|
||||
|
||||
|
||||
# functions from module HTMLparser
|
||||
htmlFreeParserCtxt()
|
||||
htmlHandleOmittedElem()
|
||||
htmlIsScriptAttribute()
|
||||
htmlParseCharRef()
|
||||
htmlParseChunk()
|
||||
htmlParseDoc()
|
||||
htmlParseElement()
|
||||
htmlParseFile()
|
||||
|
||||
# functions from module HTMLtree
|
||||
@ -440,6 +436,12 @@ Class parserCtxt()
|
||||
validate()
|
||||
wellFormed()
|
||||
|
||||
# functions from module HTMLparser
|
||||
htmlFreeParserCtxt()
|
||||
htmlParseCharRef()
|
||||
htmlParseChunk()
|
||||
htmlParseElement()
|
||||
|
||||
# functions from module parser
|
||||
clearParserCtxt()
|
||||
freeParserCtxt()
|
||||
|
@ -8,6 +8,7 @@ PYTESTS= \
|
||||
xpathext.py \
|
||||
push.py \
|
||||
pushSAX.py \
|
||||
pushSAXhtml.py \
|
||||
error.py \
|
||||
serialize.py\
|
||||
validate.py \
|
||||
|
64
python/tests/pushSAXhtml.py
Executable file
64
python/tests/pushSAXhtml.py
Executable file
@ -0,0 +1,64 @@
|
||||
#!/usr/bin/python -u
|
||||
import sys
|
||||
import libxml2
|
||||
|
||||
# Memory debug specific
|
||||
libxml2.debugMemory(1)
|
||||
|
||||
log = ""
|
||||
|
||||
class callback:
|
||||
def startDocument(self):
|
||||
global log
|
||||
log = log + "startDocument:"
|
||||
|
||||
def endDocument(self):
|
||||
global log
|
||||
log = log + "endDocument:"
|
||||
|
||||
def startElement(self, tag, attrs):
|
||||
global log
|
||||
log = log + "startElement %s %s:" % (tag, attrs)
|
||||
|
||||
def endElement(self, tag):
|
||||
global log
|
||||
log = log + "endElement %s:" % (tag)
|
||||
|
||||
def characters(self, data):
|
||||
global log
|
||||
log = log + "characters: %s:" % (data)
|
||||
|
||||
def warning(self, msg):
|
||||
global log
|
||||
log = log + "warning: %s:" % (msg)
|
||||
|
||||
def error(self, msg):
|
||||
global log
|
||||
log = log + "error: %s:" % (msg)
|
||||
|
||||
def fatalError(self, msg):
|
||||
global log
|
||||
log = log + "fatalError: %s:" % (msg)
|
||||
|
||||
handler = callback()
|
||||
|
||||
ctxt = libxml2.htmlCreatePushParser(handler, "<foo", 4, "test.xml")
|
||||
chunk = " url='tst'>b"
|
||||
ctxt.htmlParseChunk(chunk, len(chunk), 0)
|
||||
chunk = "ar</foo>"
|
||||
ctxt.htmlParseChunk(chunk, len(chunk), 1)
|
||||
ctxt=None
|
||||
|
||||
reference = "startDocument:startElement foo {'url': 'tst'}:characters: bar:endElement foo:endDocument:"
|
||||
if log != reference:
|
||||
print "Error got: %s" % log
|
||||
print "Exprected: %s" % reference
|
||||
sys.exit(1)
|
||||
|
||||
# Memory debug specific
|
||||
libxml2.cleanupParser()
|
||||
if libxml2.debugMemory(1) == 0:
|
||||
print "OK"
|
||||
else:
|
||||
print "Memory leak %d bytes" % (libxml2.debugMemory(1))
|
||||
libxml2.dumpMemory()
|
Reference in New Issue
Block a user