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