ElementTree handling nested tag
Diez B. Roggisch
deets at web.de
Mon Oct 4 08:15:55 EDT 2010
tekion <tekion at gmail.com> writes:
> On Oct 3, 2:09 pm, de... at web.de (Diez B. Roggisch) wrote:
>> tekion <tek... at gmail.com> writes:
>> > On Oct 2, 5:32 am, de... at web.de (Diez B. Roggisch) wrote:
>> >> tekion <tek... at gmail.com> writes:
>> >> > All,
>> >> > I have the following xml tag:
>> >> > <event>
>> >> > <resource_access>
>> >> > <action>httpRequest</action>
>> >> > <httpurl>HTTP://cmd.wma.ibm.com:80/</httpurl>
>> >> > <httpmethod>GET</httpmethod>
>> >> > <httpresponse>200</httpresponse>
>> >> > </resource_access>
>> >> > </event>
>>
>> >> > I am interested in:
>> >> > <action>httpRequest</action>
>> >> > <httpurl>HTTP://cmd.wma.ibm.com:80/</httpurl>
>> >> > <httpmethod>GET</httpmethod>
>> >> > <httpresponse>200</httpresponse>
>> >> > as well as the upper layer tag. How do I get at the nest tag listed
>> >> > above? Thanks.
>>
>> >> What is the "upper layer tag"? And what do you actually want to "get"?
>> >> The text-values? Or do you want to just create a document that just
>> >> consists of the resource_access tag?
>>
>> >> Then this should help:
>>
>> >> from xml.etree.ElementTree import *
>>
>> >> doc = """
>> >> <event>
>> >> <resource_access>
>> >> <action>httpRequest</action>
>> >> <httpurl>HTTP://cmd.wma.ibm.com:80/</httpurl>
>> >> <httpmethod>GET</httpmethod>
>> >> <httpresponse>200</httpresponse>
>> >> </resource_access>
>> >> </event>
>> >> """
>>
>> >> doc = fromstring(doc)
>>
>> >> resource_access = doc.find("resource_access")
>> >> print tostring(resource_access)
>>
>> >> Diez
>>
>> > Diez,
>> > This is the sample format from the doc. I the whole log file has this
>> > xml formated beginning and ending in the event tag. Is this something
>> > ElemenTtree can handle or is it better to user XSLT? Thanks.
>>
>> Handle *what*? Can it read it? Yes. Can it extract data from it?
>> Yes. You still haven't said what you actually *want* with all this.
>>
>> Diez
>
> I wan to get the value of these tags:
>
> <httpurl>HTTP://cmd.wma.ibm.com:80/</httpurl>
> <httpmethod>GET</httpmethod>
> <httpresponse>200</httpresponse>
from xml.etree.ElementTree import *
doc = """
<event>
<resource_access>
<action>httpRequest</action>
<httpurl>HTTP://cmd.wma.ibm.com:80/</httpurl>
<httpmethod>GET</httpmethod>
<httpresponse>200</httpresponse>
</resource_access>
</event>
"""
doc = fromstring(doc)
for resource_access in doc.findall("resource_access"):
print resource_access.find("httpurl").text
>
> You asked for what the upper layer tags are. The upper layer tags I
> am referring for below tags are any tag that is above it.
>
> <httpurl>HTTP://cmd.wma.ibm.com:80/</httpurl>
> <httpmethod>GET</httpmethod>
> <httpresponse>200</httpresponse>
>
> IE, for the upper upper are: <action>httpRequest</action> and <event>
> tags.
That's not true. action is on the same level as the others. And what you
you want to "get" from the upper layer tags?
Diez
More information about the Python-list
mailing list