Python and XML

Lots of noise about Python’s vast plethora of XML libraries from Nelson and responses from Uche. I still think it’s too complicated. Way too complicated. What I want to do is this:


>>> import xmllib
>>> xmldoc = xmllib.open("filename.xml")
>>> print xmldoc.xpath("//node1/node2")
[<DOM Element: node2 at 0x3457>, <DOM Element: node2 at 0x090532>]
>>> print xmldoc.dom.getElementsByTagName("node2")
[<DOM Element: node2 at 0x3457>, <DOM Element: node2 at 0x090532>]

That’d do me. In fact, I think I might write it.

3 Responses to “Python and XML”

  1. A bit like rexml for ruby?

    Jason
  2. Isn’t that pretty much what the effbot’s ElementTree package does?

    >>> from elementtree import ElementTree
    >>> xmldoc = ElementTree.parse(‘filename.xml‘)
    >>> print xmldoc.findall(‘//node1/node2‘) – Output left out because I’m lazy
    >>> print xmldoc.getiterator(‘node2‘) – Ditto with the output

    The API may not be exactly what you are after (there is nary a mention of DOM or SAX) but it’s pythonic, compact and blazingly fast.

    Andy Todd
  3. Hm. Must look at ElementTree, although it doesn’t seem very DOMish, and I tend to think in DOM terms as well as XPath terms…

    sil

Leave a Reply

OpenID is a decentralised authentication system. If you use LiveJournal or Vox you already have an OpenID; just use the URL of your homepage there. See also how to get yourself an OpenID.