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 / readernext.py < prev    next >
Encoding:
Python Source  |  2005-03-10  |  2.3 KB  |  82 lines

  1. #!/usr/bin/python -u
  2. # -*- coding: ISO-8859-1 -*-
  3. #
  4. # this tests the next API of the XmlTextReader interface
  5. #
  6. import libxml2
  7. import StringIO
  8. import sys
  9.  
  10. # Memory debug specific
  11. libxml2.debugMemory(1)
  12.  
  13. f = StringIO.StringIO("""<a><b><c /></b><d>content of d</d></a>""")
  14. input = libxml2.inputBuffer(f)
  15. reader = input.newTextReader("test_next")
  16. ret = reader.Read()
  17. if ret != 1:
  18.     print "test_next: Error reading to first element"
  19.     sys.exit(1)
  20. if reader.Name() != "a" or reader.IsEmptyElement() != 0 or \
  21.    reader.NodeType() != 1 or reader.HasAttributes() != 0:
  22.     print "test_next: Error reading the first element"
  23.     sys.exit(1)
  24. ret = reader.Read()
  25. if ret != 1:
  26.     print "test_next: Error reading to second element"
  27.     sys.exit(1)
  28. if reader.Name() != "b" or reader.IsEmptyElement() != 0 or \
  29.    reader.NodeType() != 1 or reader.HasAttributes() != 0:
  30.     print "test_next: Error reading the second element"
  31.     sys.exit(1)
  32. ret = reader.Read()
  33. if ret != 1:
  34.     print "test_next: Error reading to third element"
  35.     sys.exit(1)
  36. if reader.Name() != "c" or reader.NodeType() != 1 or \
  37.    reader.HasAttributes() != 0:
  38.     print "test_next: Error reading the third element"
  39.     sys.exit(1)
  40. ret = reader.Read()
  41. if ret != 1:
  42.     print "test_next: Error reading to end of third element"
  43.     sys.exit(1)
  44. if reader.Name() != "b" or reader.NodeType() != 15:
  45.     print "test_next: Error reading to end of second element"
  46.     sys.exit(1)
  47. ret = reader.Next()
  48. if ret != 1:
  49.     print "test_next: Error moving to third element"
  50.     sys.exit(1)
  51. if reader.Name() != "d" or reader.IsEmptyElement() != 0 or \
  52.    reader.NodeType() != 1 or reader.HasAttributes() != 0:
  53.     print "test_next: Error reading third element"
  54.     sys.exit(1)
  55. ret = reader.Next()
  56. if ret != 1:
  57.     print "test_next: Error reading to end of first element"
  58.     sys.exit(1)
  59. if reader.Name() != "a" or reader.IsEmptyElement() != 0 or \
  60.    reader.NodeType() != 15 or reader.HasAttributes() != 0:
  61.     print "test_next: Error reading the end of first element"
  62.     sys.exit(1)
  63. ret = reader.Read()
  64. if ret != 0:
  65.     print "test_next: Error reading to end of document"
  66.     sys.exit(1)
  67.  
  68. #
  69. # cleanup for memory allocation counting
  70. #
  71. del f
  72. del input
  73. del reader
  74.  
  75. # Memory debug specific
  76. libxml2.cleanupParser()
  77. if libxml2.debugMemory(1) == 0:
  78.     print "OK"
  79. else:
  80.     print "Memory leak %d bytes" % (libxml2.debugMemory(1))
  81.     libxml2.dumpMemory()
  82.