home *** CD-ROM | disk | FTP | other *** search
/ PC Welt 2006 November (DVD) / PCWELT_11_2006.ISO / casper / filesystem.squashfs / usr / share / doc / python-libxml2 / examples / reader4.py < prev    next >
Encoding:
Python Source  |  2004-02-23  |  1.1 KB  |  46 lines

  1. #!/usr/bin/python -u
  2. #
  3. # this tests the basic APIs of the XmlTextReader interface
  4. #
  5. import libxml2
  6. import StringIO
  7. import sys
  8.  
  9. # Memory debug specific
  10. libxml2.debugMemory(1)
  11.  
  12. def tst_reader(s):
  13.     f = StringIO.StringIO(s)
  14.     input = libxml2.inputBuffer(f)
  15.     reader = input.newTextReader("tst")
  16.     res = ""
  17.     while reader.Read():
  18.         res=res + "%s (%s) [%s] %d\n" % (reader.NodeType(),reader.Name(),
  19.                       reader.Value(), reader.IsEmptyElement())
  20.         if reader.NodeType() == 1: # Element
  21.             while reader.MoveToNextAttribute():
  22.                 res = res + "-- %s (%s) [%s]\n" % (reader.NodeType(),
  23.                            reader.Name(),reader.Value())
  24.     return res
  25.     
  26. expect="""1 (test) [None] 0
  27. 1 (b) [None] 1
  28. 1 (c) [None] 1
  29. 15 (test) [None] 0
  30. """
  31.  
  32. res = tst_reader("""<test><b/><c/></test>""")
  33.  
  34. if res != expect:
  35.     print "Did not get the expected error message:"
  36.     print res
  37.     sys.exit(1)
  38.  
  39. # Memory debug specific
  40. libxml2.cleanupParser()
  41. if libxml2.debugMemory(1) == 0:
  42.     print "OK"
  43. else:
  44.     print "Memory leak %d bytes" % (libxml2.debugMemory(1))
  45.     libxml2.dumpMemory()
  46.