Need to get Tags and Values from Dom

T

TommyVee

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
 
T

TommyVee

"james hedley" wrote in message

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
 

Ask a Question

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

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,982
Messages
2,570,185
Members
46,737
Latest member
Georgeengab

Latest Threads

Top