How do I print out the text of a specific xml element in python?

My xml file is in this format:

<data>     <dict>         <key>Major Version</key><integer>1</integer>         <key>Minor Version</key><integer>3</integer>     </dict>     <dict>         <key>Major Version</key><integer>5</integer>         <key>Minor Version</key><integer>6</integer>     </dict> </data> 

I’m trying to print out the text of a specific xml element…for example, i want to only print out the value 1 or 5 for the key element "Major Version". How do I do that?

My Python code (Python3) currently looks like this:

fname = input('Enter filename: ') if len(fname) < 1:     fname = 'librarytest.xml'  doc = ET.parse(fname) doc_content = doc.getroot()  chk_tag = False  for dict in doc_content:     chk_tag = False     for ele in dict:         if ele.tag == 'key' and ele.text == 'Major Version':             chk_tag = True         if chk_tag and ele.tag == 'integer':             print(ele.text) 

It returns all the values of Integer tag

Add Comment
1 Answer(s)

If I understand you correctly, you are probably looking for something like this:

vers =  doc_content.findall('.//key') ints =  doc_content.findall('.//integer') for v, i in zip(vers,ints):     if v.text == "Major Version":         print(i.text) 

Output:

1 5 
Add Comment

Your Answer

By posting your answer, you agree to the privacy policy and terms of service.