Python 3.x 如何在python中打印特定xml元素的文本?

Python 3.x 如何在python中打印特定xml元素的文本?,python-3.x,xml,Python 3.x,Xml,我的xml文件采用以下格式: <data> <dict> <key>Major Version</key><integer>1</integer> <key>Minor Version</key><integer>3</integer> </dict> <dict> <key&

我的xml文件采用以下格式:

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

主要版本1
小版本3
主要版本5
小版本6
我试图打印出特定xml元素的文本……例如,我只想打印出关键元素“主版本”的值1或5。我该怎么做

我的Python代码(Python3)目前如下所示:

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)
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)
fname=input('输入文件名:')
如果len(fname)<1:
fname='librarytest.xml'
doc=ET.parse(fname)
doc_content=doc.getroot()
chk_标记=错误
对于文档内容中的dict:
chk_标记=错误
对于dict中的ele:
如果ele.tag=='key'和ele.text=='main Version':
chk_标记=真
如果chk_标记和ele.tag=='integer':
打印(元素文本)

它返回Integer tag的所有值

如果我理解正确,您可能正在查找以下内容:

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)
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)
输出:

1
5

谢谢杰克的回复,我想用另一种方式。。。def lookup(key_text):对于dict中的ele,chk_tag=False:if chk_tag:return ele.text if ele.tag=='key'和ele.text==key_text:chk_tag=True返回None。。。。。。。。对于doc_content中的dict:if(lookup('Track ID'))为None:continue name=lookup('name')@tulipz123如果这是您的解决方案,您应该将其发布为答案,而不是评论。