Need to get Tags and Values from Dom

Discussion in 'Python' started by TommyVee, May 14, 2012.

  1. TommyVee

    TommyVee Guest

    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?

    Thanks in advance, TommyVee
     
    TommyVee, May 14, 2012
    #1
    1. Advertising

  2. TommyVee

    TommyVee Guest

    "james hedley" wrote in message
    news:11852803.89.1337001575700.JavaMail.geo-discussion-forums@vbmd2...

    On Monday, 14 May 2012 01:50:23 UTC+1, TommyVee wrote:
    > 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?
    >
    > Thanks in advance, TommyVee


    Ah maybe you're confused about how text nodes work in minidom. Every element
    will have a nodeName attribute (not callable) but if you try el.nodeValue on
    a text node you get None. That's because the text is represented by a child
    node with nodeName '#text', so you want (el.nodeName,
    el.firstChild.nodeValue).

    General tips - try the docs:
    http://docs.python.org/library/xml.dom.minidom.html
    and also use dir() a lot on objects when you're learning a new api.

    Hope that helps. Disclaimer: haven't used minidom in anger for some time.

    Confused? That's an understatement. Part of the problem is that it's been
    a long time since I learned DOM and now I'm trying to cram to get this
    program done.

    Anyway, your suggestion to access el.firstChild.nodeValue did the trick.

    Thanks
     
    TommyVee, May 15, 2012
    #2
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Dean H. Saxe
    Replies:
    0
    Views:
    1,052
    Dean H. Saxe
    Jan 3, 2004
  2. Thorsten Meininger
    Replies:
    0
    Views:
    448
    Thorsten Meininger
    Jul 28, 2004
  3. Thorsten Meininger
    Replies:
    0
    Views:
    518
    Thorsten Meininger
    Jul 28, 2004
  4. mike
    Replies:
    1
    Views:
    1,225
    Martin Honnen
    Nov 20, 2004
  5. Dave
    Replies:
    0
    Views:
    456
Loading...

Share This Page