| | |
| | |
| | |
| | |
| | |
| | import sys |
| | import setup_test |
| | import libxml2 |
| |
|
| | instance="""<?xml version="1.0"?> |
| | <tag xmlns:foo='urn:foo' xmlns:bar='urn:bar' xmlns:baz='urn:baz' />""" |
| |
|
| | def namespaceDefs(node): |
| | n = node.nsDefs() |
| | while n: |
| | yield n |
| | n = n.next |
| |
|
| | def checkNamespaceDefs(node, count): |
| | nsList = list(namespaceDefs(node)) |
| | |
| | if len(nsList) != count : |
| | raise Exception("Error: saw %d namespace declarations. Expected %d" % (len(nsList), count)) |
| | |
| | |
| | libxml2.debugMemory(1) |
| |
|
| | |
| | doc = libxml2.parseDoc(instance) |
| | node = doc.getRootElement() |
| | checkNamespaceDefs(node, 3) |
| | ns = node.removeNsDef('urn:bar') |
| | checkNamespaceDefs(node, 2) |
| | ns.freeNsList() |
| | doc.freeDoc() |
| |
|
| | |
| | doc = libxml2.parseDoc(instance) |
| | node = doc.getRootElement() |
| | checkNamespaceDefs(node, 3) |
| | ns = node.removeNsDef(None) |
| | checkNamespaceDefs(node, 0) |
| | ns.freeNsList() |
| | doc.freeDoc() |
| |
|
| | |
| | doc = libxml2.newDoc("1.0") |
| | root = doc.newChild(None, "root", None) |
| | namespace = root.newNs("http://example.com/sample", "s") |
| | child = root.newChild(namespace, "child", None) |
| | root.removeNsDef("http://example.com/sample") |
| | doc.reconciliateNs(root) |
| | namespace.freeNsList() |
| | doc.serialize() |
| | doc.freeDoc() |
| |
|
| | |
| | libxml2.cleanupParser() |
| | if libxml2.debugMemory(1) == 0: |
| | print("OK") |
| | else: |
| | print("Memory leak %d bytes" % (libxml2.debugMemory(1))) |
| |
|