By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
440,626 Members | 1,146 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 440,626 IT Pros & Developers. It's quick & easy.

Python xml.dom, help reading attribute data

P: n/a
Let's say I have the following xml tag:

<para role="success">1</para>

I can't figure out what kind of python xml.dom codes I should invoke to
read the data 1? Any help please?

Thanks
Thierry

Sep 6 '05 #1
Share this Question
Share on Google+
3 Replies


P: n/a
Thierry Lam wrote:
Let's say I have the following xml tag:

<para role="success">1</para>

I can't figure out what kind of python xml.dom codes I should invoke to
read the data 1? Any help please?

Thanks
Thierry

In [20]: import xml.dom.minidom

In [21]: s = '''<para role="success">1</para>'''

In [22]: x = xml.dom.minidom.parseString(s)

In [23]: print x.firstChild.firstChild.data
1
I doubt this really answers what you're really wanting to ask. And this
is a really really brittle way of trying to parse XML. But it answers
exactly what you're asking. Hope it gives you the start you need. Post
a follow-up when you have more questions.

JMJ
Sep 6 '05 #2

P: n/a
[Thierry Lam]
Let's say I have the following xml tag:

<para role="success">1</para>

I can't figure out what kind of python xml.dom codes I should invoke to
read the data 1? Any help please?


This is job for xpath.

#-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
from xml import xpath
from xml.dom import minidom

doc = """<para role="success">1</para>"""

mydom = minidom.parseString(doc)
#result_nodes = xpath.Evaluate("/para/text()", mydom)
#result_nodes = xpath.Evaluate("/para[1]/text()", mydom)
result_nodes = xpath.Evaluate("/para[@role='success']/text()", mydom)
for ix, r in enumerate(result_nodes):
print "result %d: %s" % (ix, r)
#-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

Xpath support is a part of the PyXML package, which you can get from here

http://pyxml.sourceforge.net

Xpath tutorials from here

http://www.zvon.org/xxl/XPathTutoria.../examples.html
http://www.w3schools.com/xpath/

there-are-other-ways-to-do-it-but-i-like-xpath-ly'yrs,

--
alan kennedy
------------------------------------------------------
email alan: http://xhaus.com/contact/alan
Sep 6 '05 #3

P: n/a
Thierry Lam wrote:
Let's say I have the following xml tag:

<para role="success">1</para>

I can't figure out what kind of python xml.dom codes I should invoke
to read the data 1? Any help please?

Thanks
Thierry

If you use elementtree:
from elementtree import ElementTree
node = ElementTree.fromstring("""<para role="success">1</para>""")
node.text '1' node.attrib["role"]

'success'
--
Giovanni Bajo
Sep 7 '05 #4

This discussion thread is closed

Replies have been disabled for this discussion.