File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / libxml2 / python / tests / reader5.py
Revision 1.1.1.2 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Sun Jun 15 19:53:34 2014 UTC (10 years, 5 months ago) by misho
Branches: libxml2, MAIN
CVS tags: v2_9_1p0, v2_9_1, HEAD
libxml2 2.9.1

    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 sys
    8: 
    9: # Memory debug specific
   10: libxml2.debugMemory(1)
   11: 
   12: expect="""<bibl id="Aho" key="Aho/Ullman">Aho, Alfred V., 
   13: Ravi Sethi, and Jeffrey D. Ullman.
   14: <emph>Compilers:  Principles, Techniques, and Tools</emph>.
   15: Reading:  Addison-Wesley, 1986, rpt. corr. 1988.</bibl>"""
   16: 
   17: f = open('../../test/valid/REC-xml-19980210.xml', 'rb')
   18: input = libxml2.inputBuffer(f)
   19: reader = input.newTextReader("REC")
   20: res=""
   21: while reader.Read() > 0:
   22:     while reader.Name() == 'bibl':
   23:         node = reader.Expand()            # expand the subtree
   24:         if node.xpathEval("@id = 'Aho'"): # use XPath on it
   25:             res = res + node.serialize()
   26:         if reader.Next() != 1:            # skip the subtree
   27:             break;
   28: 
   29: if res != expect:
   30:     print("Error: didn't get the expected output")
   31:     print("got '%s'" % (res))
   32:     print("expected '%s'" % (expect))
   33:     
   34: 
   35: #
   36: # cleanup
   37: #
   38: del input
   39: del reader
   40: 
   41: # Memory debug specific
   42: libxml2.cleanupParser()
   43: if libxml2.debugMemory(1) == 0:
   44:     print("OK")
   45: else:
   46:     print("Memory leak %d bytes" % (libxml2.debugMemory(1)))
   47:     libxml2.dumpMemory()

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>