123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- #!/usr/bin/python -u
- #
- # this tests the entities substitutions with the XmlTextReader interface
- #
- import sys
- import StringIO
- import libxml2
- # Memory debug specific
- libxml2.debugMemory(1)
- result = ""
- def processNode(reader):
- global result
- result = result + "%d %d %s %d\n" % (reader.Depth(), reader.NodeType(),
- reader.Name(), reader.IsEmptyElement())
- #
- # Parse a document testing the readerForxxx API
- #
- docstr="""<foo>
- <label>some text</label>
- <item>100</item>
- </foo>"""
- expect="""0 1 foo 0
- 1 14 #text 0
- 1 1 label 0
- 2 3 #text 0
- 1 15 label 0
- 1 14 #text 0
- 1 1 item 0
- 2 3 #text 0
- 1 15 item 0
- 1 14 #text 0
- 0 15 foo 0
- """
- result = ""
- reader = libxml2.readerForDoc(docstr, "test1", None, 0)
- ret = reader.Read()
- while ret == 1:
- processNode(reader)
- ret = reader.Read()
- if ret != 0:
- print "Error parsing the document test1"
- sys.exit(1)
- if result != expect:
- print "Unexpected result for test1"
- print result
- sys.exit(1)
- #
- # Reuse the reader for another document testing the ReaderNewxxx API
- #
- docstr="""<foo>
- <label>some text</label>
- <item>1000</item>
- </foo>"""
- expect="""0 1 foo 0
- 1 14 #text 0
- 1 1 label 0
- 2 3 #text 0
- 1 15 label 0
- 1 14 #text 0
- 1 1 item 0
- 2 3 #text 0
- 1 15 item 0
- 1 14 #text 0
- 0 15 foo 0
- """
- result = ""
- reader.NewDoc(docstr, "test2", None, 0)
- ret = reader.Read()
- while ret == 1:
- processNode(reader)
- ret = reader.Read()
- if ret != 0:
- print "Error parsing the document test2"
- sys.exit(1)
- if result != expect:
- print "Unexpected result for test2"
- print result
- sys.exit(1)
- #
- # cleanup
- #
- 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()
|