paulb@1 | 1 | #!/usr/bin/env python |
paulb@1 | 2 | |
paulb@1 | 3 | import libxml2dom |
paulb@1 | 4 | import libxml2 |
paulb@1 | 5 | #doc = libxml2.parseFile("XMLTools2/examples/zoo/zoo_schema.xml") |
paulb@1 | 6 | doc = libxml2.parseDoc("""<?xml version="1.0" encoding="iso-8859-15"?> |
paulb@1 | 7 | <schema xmlns="http://www.boddie.org.uk/ns/xmltools/model" |
paulb@1 | 8 | xmlns:database="http://www.boddie.org.uk/ns/xmltools/database"> |
paulb@1 | 9 | |
paulb@1 | 10 | <def-element name="cage" database:table="CAGE"/> |
paulb@1 | 11 | </schema> |
paulb@1 | 12 | """) |
paulb@1 | 13 | d = libxml2dom.Node(doc) |
paulb@1 | 14 | |
paulb@1 | 15 | # This works: |
paulb@1 | 16 | print d.childNodes[0].childNodes[1]._node.nsProp("table", 'http://www.boddie.org.uk/ns/xmltools/database') |
paulb@1 | 17 | print doc.children.children.next.nsProp("table", 'http://www.boddie.org.uk/ns/xmltools/database') |
paulb@1 | 18 | # This works only with an appropriate patch to libxml2 2.5.7: |
paulb@1 | 19 | print d.childNodes[0].childNodes[1].attributes[1]._node.ns() |
paulb@1 | 20 | # Equivalent to: |
paulb@1 | 21 | print d.childNodes[0].childNodes[1]._node.properties.next.ns() |
paulb@1 | 22 | print doc.children.children.next.properties.next.ns() |