[英]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.