This works, but IMO the xml.etree.ElementTree module is a little more user friendly than DOM. Take a look at the code from [this gist](https://gist.github.com/nicholsn/3da1d02b902f7c14a61b):

``` python
#!/usr/bin/python
import os
import sys
import xml.etree.ElementTree as ET # import entire module; use alias for clarity
 
# note that this is the *module*'s `register_namespace()` function
ET.register_namespace("cml", "http://www.connectomics.org/cff-2")
ET.register_namespace("dcterms", "http://purl.org/dc/terms/")
 
# provide a map of namespaces
nsmap = {v:k for k, v in ET._namespace_map.iteritems()}
 
# instantiate an object of *class* `ElementTree`
tree = ET.ElementTree()
tree.parse("meta.cml")
root = tree.getroot()
 
# Use xpath to find elements w/prefixes
title_element = root.findall('./cml:connectome-meta/dcterms:title', namespaces=nsmap)[0]
title = title_element.text
 
# we use the *module*'s `dump()` function
ET.dump(tree) 
```