使用 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
个对象。
<?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
个对象。