使用 XML 文件中的 Python,我只想获取具有值的标签?

Using Python from a XML file ,I want to get only the tags that have a value?

        <?xml version='1.0' encoding='UTF-8'?>
            <results preview='0'>
            <meta>
                    <fieldOrder>
            <field>count</field>
               </fieldOrder>
            </meta>
        <result offset='0'>
            <field k='count'>
                <value><text>6</text></value>
            </field>
        </result>
    </results> 

由此 XML ,我只想获取具有值的标签。即从这个 xml 我只想要 'text' 标签,'fields' 标签。

加载 xml,遍历它(例如递归地),return 个带有非空文本的标签。

此处作为生成器:

import xml.etree.ElementTree as ET

def getNonemptyTagsGenerator(xml):
    for elem in xml:
        yield from getNonemptyTagsGenerator(elem)
    if len(xml) == 0:
        if xml.text and xml.text.strip():
            yield xml

xml = ET.parse(file_path).getroot()
print([elem for elem in getNonemptyTagsGenerator(xml)])

结果:

[<Element 'field' at 0x7fb2c967fea8>, <Element 'text' at 0x7fb2c9679048>]

你说想要 "tags",所以这些是 Element 个对象。