Need to get Tags and Values from Dom

Stefan Behnel stefan_ml at behnel.de
Mon May 14 02:54:26 EDT 2012


TommyVee, 14.05.2012 02:50:
> I have a very simple XML document that I need to "walk", and I'm using
> xml.dom.minidom.  No attributes, just lots of nested tags and associated
> values.  All I'm looking to do is iterate through each of the highest
> sibling nodes, check what the tag is, and process its value accordingly. 
> If a node has children, same thing - iterate through the nodes, check the
> tags and process the values accordingly.  I see where each node object has
> a "childNodes" attribute, so I can drill down the tree.  But what are the
> node attributes which indicate Tag and Value?  I thought it would have been
> nodeName and nodeValue, but that doesn't seem to be.  Does anyone know?

Use the xml.etree.ElementTree module instead. It makes this kind of work
really easy, e.g.:

    import xml.etree.cElementTree as ET  # using fast C accelerator module

    root = ET.parse("afile.xml").getroot()
    for child in root:
        if child.tag == 'abc':
            print("abc tag found")
        else:
            print("other tag found")

There's also an incremental iterparse() function, in case your documents
are large.

Stefan




More information about the Python-list mailing list