url fetching from xml depending upon selection

Stefan Behnel stefan_ml at behnel.de
Tue May 18 04:12:57 EDT 2010


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




More information about the Python-list mailing list