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 / serialize.py < prev    next >
Encoding:
Python Source  |  2003-12-04  |  4.2 KB  |  151 lines

  1. #!/usr/bin/python -u
  2. import sys
  3. import libxml2
  4.  
  5. # Memory debug specific
  6. libxml2.debugMemory(1)
  7.  
  8. #
  9. # Testing XML document serialization
  10. #
  11. doc = libxml2.parseDoc("""<root><foo>hello</foo></root>""")
  12. str = doc.serialize()
  13. if str != """<?xml version="1.0"?>
  14. <root><foo>hello</foo></root>
  15. """:
  16.    print "error serializing XML document 1"
  17.    sys.exit(1)
  18. str = doc.serialize("iso-8859-1")
  19. if str != """<?xml version="1.0" encoding="iso-8859-1"?>
  20. <root><foo>hello</foo></root>
  21. """:
  22.    print "error serializing XML document 2"
  23.    sys.exit(1)
  24. str = doc.serialize(format=1)
  25. if str != """<?xml version="1.0"?>
  26. <root>
  27.   <foo>hello</foo>
  28. </root>
  29. """:
  30.    print "error serializing XML document 3"
  31.    sys.exit(1)
  32. str = doc.serialize("iso-8859-1", 1)
  33. if str != """<?xml version="1.0" encoding="iso-8859-1"?>
  34. <root>
  35.   <foo>hello</foo>
  36. </root>
  37. """:
  38.    print "error serializing XML document 4"
  39.    sys.exit(1)
  40.  
  41. #
  42. # Test serializing a subnode
  43. #
  44. root = doc.getRootElement()
  45. str = root.serialize()
  46. if str != """<root><foo>hello</foo></root>""":
  47.    print "error serializing XML root 1"
  48.    sys.exit(1)
  49. str = root.serialize("iso-8859-1")
  50. if str != """<root><foo>hello</foo></root>""":
  51.    print "error serializing XML root 2"
  52.    sys.exit(1)
  53. str = root.serialize(format=1)
  54. if str != """<root>
  55.   <foo>hello</foo>
  56. </root>""":
  57.    print "error serializing XML root 3"
  58.    sys.exit(1)
  59. str = root.serialize("iso-8859-1", 1)
  60. if str != """<root>
  61.   <foo>hello</foo>
  62. </root>""":
  63.    print "error serializing XML root 4"
  64.    sys.exit(1)
  65. doc.freeDoc()
  66.  
  67. #
  68. # Testing HTML document serialization
  69. #
  70. doc = libxml2.htmlParseDoc("""<html><head><title>Hello</title><body><p>hello</body></html>""", None)
  71. str = doc.serialize()
  72. if str != """<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
  73. <html><head><title>Hello</title></head><body><p>hello</p></body></html>
  74. """:
  75.    print "error serializing HTML document 1"
  76.    sys.exit(1)
  77. str = doc.serialize("ISO-8859-1")
  78. if str != """<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
  79. <html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Hello</title></head><body><p>hello</p></body></html>
  80. """:
  81.    print "error serializing HTML document 2"
  82.    sys.exit(1)
  83. str = doc.serialize(format=1)
  84. if str != """<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
  85. <html>
  86. <head>
  87. <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  88. <title>Hello</title>
  89. </head>
  90. <body><p>hello</p></body>
  91. </html>
  92. """:
  93.    print "error serializing HTML document 3"
  94.    sys.exit(1)
  95. str = doc.serialize("iso-8859-1", 1)
  96. if str != """<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
  97. <html>
  98. <head>
  99. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  100. <title>Hello</title>
  101. </head>
  102. <body><p>hello</p></body>
  103. </html>
  104. """:
  105.    print "error serializing HTML document 4"
  106.    sys.exit(1)
  107.  
  108. #
  109. # Test serializing a subnode
  110. #
  111. doc.htmlSetMetaEncoding(None)
  112. root = doc.getRootElement()
  113. str = root.serialize()
  114. if str != """<html><head><title>Hello</title></head><body><p>hello</p></body></html>""":
  115.    print "error serializing HTML root 1"
  116.    sys.exit(1)
  117. str = root.serialize("ISO-8859-1")
  118. if str != """<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Hello</title></head><body><p>hello</p></body></html>""":
  119.    print "error serializing HTML root 2"
  120.    sys.exit(1)
  121. str = root.serialize(format=1)
  122. if str != """<html>
  123. <head>
  124. <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  125. <title>Hello</title>
  126. </head>
  127. <body><p>hello</p></body>
  128. </html>""":
  129.    print "error serializing HTML root 3"
  130.    sys.exit(1)
  131. str = root.serialize("iso-8859-1", 1)
  132. if str != """<html>
  133. <head>
  134. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  135. <title>Hello</title>
  136. </head>
  137. <body><p>hello</p></body>
  138. </html>""":
  139.    print "error serializing HTML root 4"
  140.    sys.exit(1)
  141.  
  142. doc.freeDoc()
  143.  
  144. # Memory debug specific
  145. libxml2.cleanupParser()
  146. if libxml2.debugMemory(1) == 0:
  147.     print "OK"
  148. else:
  149.     print "Memory leak %d bytes" % (libxml2.debugMemory(1))
  150.     libxml2.dumpMemory()
  151.