mirror of
https://gitlab.gnome.org/GNOME/libxml2.git
synced 2025-04-25 22:50:08 +03:00
* In conda or Gentoo Prefix, we don't want to use the system python and instead rely on PATH lookup.
60 lines
1.5 KiB
Python
Executable File
60 lines
1.5 KiB
Python
Executable File
#!/usr/bin/env python
|
|
import libxml2
|
|
import sys
|
|
|
|
# Memory debug specific
|
|
libxml2.debugMemory(1)
|
|
|
|
doc = libxml2.newDoc("1.0")
|
|
comment = doc.newDocComment("This is a generated document")
|
|
doc.addChild(comment)
|
|
pi = libxml2.newPI("test", "PI content")
|
|
doc.addChild(pi)
|
|
root = doc.newChild(None, "doc", None)
|
|
ns = root.newNs("http://example.com/doc", "my")
|
|
root.setNs(ns)
|
|
elem = root.newChild(None, "foo", "bar")
|
|
elem.setBase("http://example.com/imgs")
|
|
elem.setProp("img", "image.gif")
|
|
doc.saveFile("tmp.xml")
|
|
doc.freeDoc()
|
|
|
|
doc = libxml2.parseFile("tmp.xml")
|
|
comment = doc.children
|
|
if comment.type != "comment" or \
|
|
comment.content != "This is a generated document":
|
|
print("error rereading comment")
|
|
sys.exit(1)
|
|
pi = comment.next
|
|
if pi.type != "pi" or pi.name != "test" or pi.content != "PI content":
|
|
print("error rereading PI")
|
|
sys.exit(1)
|
|
root = pi.next
|
|
if root.name != "doc":
|
|
print("error rereading root")
|
|
sys.exit(1)
|
|
ns = root.ns()
|
|
if ns.name != "my" or ns.content != "http://example.com/doc":
|
|
print("error rereading namespace")
|
|
sys.exit(1)
|
|
elem = root.children
|
|
if elem.name != "foo":
|
|
print("error rereading elem")
|
|
sys.exit(1)
|
|
if elem.getBase(None) != "http://example.com/imgs":
|
|
print("error rereading base")
|
|
sys.exit(1)
|
|
if elem.prop("img") != "image.gif":
|
|
print("error rereading property")
|
|
sys.exit(1)
|
|
|
|
doc.freeDoc()
|
|
|
|
# Memory debug specific
|
|
libxml2.cleanupParser()
|
|
if libxml2.debugMemory(1) == 0:
|
|
print("OK")
|
|
else:
|
|
print("Memory leak %d bytes" % (libxml2.debugMemory(1)))
|
|
libxml2.dumpMemory()
|