Annotation of embedaddon/libxml2/python/tests/reader5.py, revision 1.1.1.1
1.1 misho 1: #!/usr/bin/python -u
2: #
3: # this tests the Expand() API of the xmlTextReader interface
4: # this extract the Dragon bibliography entries from the XML specification
5: #
6: import libxml2
7: import StringIO
8: import sys
9:
10: # Memory debug specific
11: libxml2.debugMemory(1)
12:
13: expect="""<bibl id="Aho" key="Aho/Ullman">Aho, Alfred V.,
14: Ravi Sethi, and Jeffrey D. Ullman.
15: <emph>Compilers: Principles, Techniques, and Tools</emph>.
16: Reading: Addison-Wesley, 1986, rpt. corr. 1988.</bibl>"""
17:
18: f = open('../../test/valid/REC-xml-19980210.xml')
19: input = libxml2.inputBuffer(f)
20: reader = input.newTextReader("REC")
21: res=""
22: while reader.Read():
23: while reader.Name() == 'bibl':
24: node = reader.Expand() # expand the subtree
25: if node.xpathEval("@id = 'Aho'"): # use XPath on it
26: res = res + node.serialize()
27: if reader.Next() != 1: # skip the subtree
28: break;
29:
30: if res != expect:
31: print "Error: didn't get the expected output"
32: print "got '%s'" % (res)
33: print "expected '%s'" % (expect)
34:
35:
36: #
37: # cleanup
38: #
39: del input
40: del reader
41:
42: # Memory debug specific
43: libxml2.cleanupParser()
44: if libxml2.debugMemory(1) == 0:
45: print "OK"
46: else:
47: print "Memory leak %d bytes" % (libxml2.debugMemory(1))
48: libxml2.dumpMemory()
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>