📄 serialize.py
字号:
#!/usr/bin/python -uimport sysimport libxml2# Memory debug specificlibxml2.debugMemory(1)## Testing XML document serialization#doc = libxml2.parseDoc("""<root><foo>hello</foo></root>""")str = doc.serialize()if str != """<?xml version="1.0"?><root><foo>hello</foo></root>""": print "error serializing XML document 1" sys.exit(1)str = doc.serialize("iso-8859-1")if str != """<?xml version="1.0" encoding="iso-8859-1"?><root><foo>hello</foo></root>""": print "error serializing XML document 2" sys.exit(1)str = doc.serialize(format=1)if str != """<?xml version="1.0"?><root><foo>hello</foo></root>""": print "error serializing XML document 3" sys.exit(1)str = doc.serialize("iso-8859-1", 1)if str != """<?xml version="1.0" encoding="iso-8859-1"?><root><foo>hello</foo></root>""": print "error serializing XML document 4" sys.exit(1)## Test serializing a subnode#root = doc.getRootElement()str = root.serialize()if str != """<root><foo>hello</foo></root>""": print "error serializing XML root 1" sys.exit(1)str = root.serialize("iso-8859-1")if str != """<root><foo>hello</foo></root>""": print "error serializing XML root 2" sys.exit(1)str = root.serialize(format=1)if str != """<root><foo>hello</foo></root>""": print "error serializing XML root 3" sys.exit(1)str = root.serialize("iso-8859-1", 1)if str != """<root><foo>hello</foo></root>""": print "error serializing XML root 4" sys.exit(1)doc.freeDoc()## Testing HTML document serialization#doc = libxml2.htmlParseDoc("""<html><head><title>Hello</title><body><p>hello</body></html>""", None)str = doc.serialize()if str != """<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd"><html><head><title>Hello</title></head><body><p>hello</p></body></html>""": print "error serializing HTML document 1" sys.exit(1)str = doc.serialize("ISO-8859-1")if str != """<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd"><html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>Hello</title></head><body><p>hello</p></body></html>""": print "error serializing HTML document 2" sys.exit(1)str = doc.serialize(format=1)if str != """<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd"><html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>Hello</title></head><body><p>hello</p></body></html>""": print "error serializing HTML document 3" sys.exit(1)str = doc.serialize("iso-8859-1", 1)if str != """<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd"><html><head><meta content="text/html; charset=iso-8859-1" http-equiv="Content-Type"><title>Hello</title></head><body><p>hello</p></body></html>""": print "error serializing HTML document 4" sys.exit(1)## Test serializing a subnode#doc.htmlSetMetaEncoding(None)root = doc.getRootElement()str = root.serialize()if str != """<html><head><title>Hello</title></head><body><p>hello</p></body></html>""": print "error serializing HTML root 1" sys.exit(1)str = root.serialize("ISO-8859-1")if str != """<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>Hello</title></head><body><p>hello</p></body></html>""": print "error serializing HTML root 2" sys.exit(1)str = root.serialize(format=1)if str != """<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>Hello</title></head><body><p>hello</p></body></html>""": print "error serializing HTML root 3" sys.exit(1)str = root.serialize("iso-8859-1", 1)if str != """<html><head><meta content="text/html; charset=iso-8859-1" http-equiv="Content-Type"><title>Hello</title></head><body><p>hello</p></body></html>""": print "error serializing HTML root 4" sys.exit(1)doc.freeDoc()# Memory debug specificlibxml2.cleanupParser()if libxml2.debugMemory(1) == 0: print "OK"else: print "Memory leak %d bytes" % (libxml2.debugMemory(1)) libxml2.dumpMemory()
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -