获取错误“;列表。删除(x):x不在列表中;而使用python仅从XML中获取所需元素
我编写了一个代码,从获取错误“;列表。删除(x):x不在列表中;而使用python仅从XML中获取所需元素,python,python-3.x,xml,elementtree,Python,Python 3.x,Xml,Elementtree,我编写了一个代码,从tes.xml中删除列表lis中不存在的国家,并在删除国家后生成更新的xmloutput.xml。但是在生成输出xml时出错 XML: 错误: 2 5 69 Traceback (most recent call last): File "main.py", line 11, in <module> root.remove(country) ValueError: list.remove(x): x not in list 2 5
tes.xml
中删除列表lis
中不存在的国家,并在删除国家后生成更新的xmloutput.xml
。但是在生成输出xml时出错
XML:
错误:
2
5
69
Traceback (most recent call last):
File "main.py", line 11, in <module>
root.remove(country)
ValueError: list.remove(x): x not in list
2
5.
69
回溯(最近一次呼叫最后一次):
文件“main.py”,第11行,在
根。删除(国家)
ValueError:list。删除(x):x不在列表中
预期产出:
<data>
<country>
<state>
<rank updated="yes">2</rank>
<year>2008</year>
<gdppc>141100</gdppc>
<neighbor name="Austria" direction="E"/>
<neighbor name="Switzerland" direction="W"/>
</state>
</country>
<country>
<state>
<rank updated="yes">5</rank>
<year>2011</year>
<gdppc>59900</gdppc>
<gpc>59900</gpc>
<neighbor name="Malaysia" direction="N"/>
</state>
</country>
</data>
2.
2008
141100
5.
2011
59900
59900
root.remove()
仅删除根元素的直接子元素。
元素确实是直接的子元素,但是代码中的国家
变量指的是
元素
这项工作:
for country in root.findall('.//country'):
rank = country.find('state/rank').text
print(rank)
if rank not in lis:
root.remove(country)
root.remove()
只删除根元素的直接子元素。
元素确实是直接的子元素,但是代码中的国家
变量指的是
元素
这项工作:
for country in root.findall('.//country'):
rank = country.find('state/rank').text
print(rank)
if rank not in lis:
root.remove(country)
收到答案后,请不要更改问题。我解释了问题所在,但现在我的答案不再有意义了,我没有改变。同一个问题有更新错误。什么?你确实改变了问题。不要那样做。如果您有我的回答没有解决的其他问题,请提出新问题。当然可以,先生。。那不成问题。我将询问新任务,并将此问题更新为您回答的旧问题。我只能在90分钟后发布:(在收到答案后,请不要更改问题。我解释了问题的原因,但现在我的答案不再有意义。我没有更改。同一个问题有更新错误。什么?您确实更改了问题。不要这样做。如果您有我的答案未解决的其他问题,请提出新问题。当然,先生。。这不是问题。我会问新任务,并将此问题更新为您回答的旧问题。我只能在90分钟后发布:(如果在XML中添加额外的标记大陆,我尝试了相同的理解,但它再次给了我错误。我只是尝试了解它是如何工作的。如果在XML中添加额外的标记大陆,我尝试了相同的理解,但它再次给了我错误。我只是尝试了解它是如何工作的
for country in root.findall('.//country'):
rank = country.find('state/rank').text
print(rank)
if rank not in lis:
root.remove(country)