[英]How to get text inside of an XML node using Python elementtree?
我有一个格式奇怪的 XML 文件:
<list name="List1">
<listitem>
<variable name="name1">text1</variable>
<variable name="name2">text2</variable>
</listitem>
<listitem>
<variable name="name1">text3</variable>
<variable name="name2">text4</variable>
</listitem>
...
</list>
以下代码
tree = ET.parse(xmlfile)
root = tree.getroot()
for item in root.findall('listitem'):
vars = item.find('variable')
print(vars.attrib)
回报:
{'name': 'name1'}
{'name': 'name1'}
{'name': 'name1'}
{'name': 'name1'}
{'name': 'name1'}
{'name': 'name1'}
{'name': 'name1'}
我怎样才能让它解析 name2 和标签内的文本?
vars.text
应该为您提供可变元素内的文本。
此外, item.find('variable')
只会找到第一个变量。 您可以使用findall()
并迭代返回的列表。
我还建议不要使用vars
作为变量名; 它隐藏了内置名称vars
。
这是一个例子...
for item in root.findall('listitem'):
for var_elems in item.findall('variable'):
print(var_elems.attrib, var_elems.text)
印刷...
{'name': 'name1'} text1
{'name': 'name2'} text2
{'name': 'name1'} text3
{'name': 'name2'} text4
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.