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

Reply via email to