shanti bhushan, 18.05.2010 07:18:
I have a sample.XML file
the code is like this

<?xml version="1.0" encoding="UTF-8"?>
<opml version="1.0">
<head>
        <title>My Podcasts</title>
        <dateCreated>Sun, 07 Mar 2010 15:53:26

GMT</dateCreated>
        <dateModified>Sun, 07 Mar 2010 15:53:26

GMT</dateModified>
</head>
<body>
   <TestCase name="Sprint_001">
     <Input url="http://first.co.jp"; />
     <Input url="http://www.google.com"; />
     <Input url="http://www.epaper.times.india.com"; />
   </TestCase>
   <TestCase name="Sprint_002">
     <Input url="http://second.co.jp"; />
     <Input url="http://www.google.com"; />
     <Input url="http://www.epaper.times.india.com"; />
   </TestCase>
   <TestCase name="Sprint_003">
     <Input url="http://third.co.jp"; />
     <Input url="http://www.google.com"; />
     <Input url="http://www.epaper.times.india.com"; />
   </TestCase>
</body>
</opml>


This my python code
from xml.etree import ElementTree

with open('our.xml', 'rt') as f:
     tree = ElementTree.parse(f)

for node, value in tree.findall('.//TestCase/Input'):

         url=node.attrib.get('url')
         print url



i want to print the url depending on name="sprint_001".
If i change my option to sprint_002 it should print url for sprint_002

Actually, try this:

    test_cases = dict(
         (test_case.get('name'), [ el.get('url') for el in test_case ])
         for test_case in tree.findall('.//TestCase') )

    print test_cases['Sprint_001']   # -> prints list of URLs

That gives you a dict of test case names that are mapped to the list of their URLs.

Stefan

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to