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
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