File tree Expand file tree Collapse file tree 1 file changed +6
-0
lines changed Expand file tree Collapse file tree 1 file changed +6
-0
lines changed Original file line number Diff line number Diff line change @@ -251,12 +251,18 @@ We can remove elements using :meth:`Element.remove`. Let's say we want to
251
251
remove all countries with a rank higher than 50::
252
252
253
253
>>> for country in root.findall('country'):
254
+ ... # using root.findall() to avoid removal during traversal
254
255
... rank = int(country.find('rank').text)
255
256
... if rank > 50:
256
257
... root.remove(country)
257
258
...
258
259
>>> tree.write('output.xml')
259
260
261
+ Note that concurrent modification while iterating can lead to problems,
262
+ just like when iterating and modifying Python lists or dicts.
263
+ Therefore, the example first collects all matching elements with
264
+ ``root.findall() ``, and only then iterates over the list of matches.
265
+
260
266
Our XML now looks like this:
261
267
262
268
.. code-block :: xml
You can’t perform that action at this time.
0 commit comments