使用 XML 文件中的 Python,我只想获取具有值的标签? [关闭]
Posted
技术标签:
【中文标题】使用 XML 文件中的 Python,我只想获取具有值的标签? [关闭]【英文标题】:Using Python from a XML file ,I want to get only the tags that have a value? [closed] 【发布时间】:2020-05-16 00:14:06 【问题描述】: <?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'标签。
【问题讨论】:
欢迎来到 ***。我很确定你可以用谷歌搜索这个,我敢肯定,如果你在这个网站上搜索,你会发现有人已经回答了你的问题。 【参考方案1】:加载 xml,遍历它(例如递归),返回带有非空文本的标签。
这里作为生成器:
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>]
你说想要“标签”,所以这些是 Element
对象。
【讨论】:
当我在其他 xml 文件上使用它时出现错误:“'NoneType' 对象没有属性 'strip'”。 已修复。现在没有text
var,我们首先检查xml.text
的存在,然后我们检查它是否仍然存在,当我们从它的末端去除空格时。以上是关于使用 XML 文件中的 Python,我只想获取具有值的标签? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
从 android 中的 XML 文件创建 View-Object