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 @@ -249,12 +249,18 @@ We can remove elements using :meth:`Element.remove`. Let's say we want to
249249remove all countries with a rank higher than 50::
250250
251251 >>> for country in root.findall('country'):
252+ ... # using root.findall() to avoid removal during traversal
252253 ... rank = int(country.find('rank').text)
253254 ... if rank > 50:
254255 ... root.remove(country)
255256 ...
256257 >>> tree.write('output.xml')
257258
259+ Note that concurrent modification while iterating can lead to problems,
260+ just like when iterating and modifying Python lists or dicts.
261+ Therefore, the example first collects all matching elements with
262+ ``root.findall() ``, and only then iterates over the list of matches.
263+
258264Our XML now looks like this:
259265
260266.. code-block :: xml
You can’t perform that action at this time.
0 commit comments