perhaps loop through each stage and check its children
root = ET.fromstring(xmldata)
stages = root.findall("./ep_150/stage")
print '\n\nreviews for id=p4645\n'
for stage in stages:
children = stage.getchildren()
for child in children:
if child.attrib['id']=='p4645':
print('%s - %s' % (stage.attrib['name'],
child.attrib['name']))
On Thu, Nov 1, 2012 at 12:23 AM, PBLN RAO <[email protected]> wrote:
>
>
> I am trying to retrieve data from xml.etree.cElementTree.
>
> i have the following code
>
> *Code Snippet*
>
>
> import xml.etree.cElementTree as ET
>
> xmldata ="""
> <pipeline>
> <ep_150>
> <stage name="lay" longname="layout" department="layout"
> process="production">
> <review name="R1" reviewer="sridhar reddy" role="supervisor"
> id="p1234">
> </review>
> </stage>
> <stage name="lip" longname="lipsync" department="lipsync"
> process="production">
> <review name="R2" reviewer="someone" role="supervisor" id="p2345">
> </review>
> </stage>
> <stage name="blk" longname="blocking" department="animation"
> process="production">
> <review name="R3" reviewer="sudeepth" role="supervisor"
> id="p4645" dependson='R1'>
> </review>
> <review name="R4" reviewer="chandu" role="director" id="p5678">
> </review>
> </stage>
> <stage name="pri" longname="primary" department="animation"
> process="production">
> <review name="R5" reviewer="sudeepth" role="supervisor"
> id="p4645" style="dep" >
> </review>
> <review name="R6" reviewer="sudeepth" role="bld_supervisor"
> id="p2556" style="dep">
> </review>
> </stage>
> <stage name="sec" longname="secondary" department="animation"
> process="production">
> <review name="R7" reviewer="sha" role="supervisor" id="p1234"
> style="dep">
> </review>
> <review name="R8" reviewer="chandu" role="director" id="p5678">
> </review>
> </stage>
> </ep_150>
> </pipeline>
> """
> root = ET.fromstring(xmldata)
> review = root.findall("./ep_150/stage/review")
> print '\n\nreviews for id=p4645\n'
> for rev in review:
>
> if rev.attrib['id']=='p4645':
> print (rev.attrib['name'])
>
> with the above code i am getting the result as below
>
> reviews for id=p4645
>
> R3
>
> R5
>
> *But i need the output as*
>
> reviewes for id=p4645
>
> blk - R3
>
> pri - R5
>
> i.e, i need the parent tag along with the element using Xpaths.
>
> I know its possible if i iterate through entire tree. But need to use more
> loops.
>
> --
> view archives: http://groups.google.com/group/python_inside_maya
> change your subscription settings:
> http://groups.google.com/group/python_inside_maya/subscribe
>
--
view archives: http://groups.google.com/group/python_inside_maya
change your subscription settings:
http://groups.google.com/group/python_inside_maya/subscribe