The DOM parser is built on BeautifulSoup, which is designed for HTML.
It may not always handle XML correctly (in particular: it doesn't know
about self-closing tags unless you define them). In the latest
revision I've added an optional parameter self_closing=[] to the
Document() class which may work for you:
xml = "<address> ..."
dom = Document(xml, self_closing=["secondarystreet"])
print dom.by_tag("address")[0].children
You can get the latest revision from github now or wait for the next
official release.
Also, you can always use (for example) dom.by_tag("address")
[0].by_tag("country") to just get all the country tags inside the
first address tag, regardless of how it's nested.