123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- #!/usr/bin/python -u
- #
- # this tests the Expand() API of the xmlTextReader interface
- # this extract the Dragon bibliography entries from the XML specification
- #
- import libxml2
- import StringIO
- import sys
- # Memory debug specific
- libxml2.debugMemory(1)
- expect="""<bibl id="Aho" key="Aho/Ullman">Aho, Alfred V.,
- Ravi Sethi, and Jeffrey D. Ullman.
- <emph>Compilers: Principles, Techniques, and Tools</emph>.
- Reading: Addison-Wesley, 1986, rpt. corr. 1988.</bibl>"""
- f = open('../../test/valid/REC-xml-19980210.xml')
- input = libxml2.inputBuffer(f)
- reader = input.newTextReader("REC")
- res=""
- while reader.Read():
- while reader.Name() == 'bibl':
- node = reader.Expand() # expand the subtree
- if node.xpathEval("@id = 'Aho'"): # use XPath on it
- res = res + node.serialize()
- if reader.Next() != 1: # skip the subtree
- break;
- if res != expect:
- print "Error: didn't get the expected output"
- print "got '%s'" % (res)
- print "expected '%s'" % (expect)
-
- #
- # cleanup
- #
- del input
- del reader
- # Memory debug specific
- libxml2.cleanupParser()
- if libxml2.debugMemory(1) == 0:
- print "OK"
- else:
- print "Memory leak %d bytes" % (libxml2.debugMemory(1))
- libxml2.dumpMemory()
|