XML中循环删除某个节点的陷阱

[需求1]:删除第二本书的year元素

使用removeChild方法,是通过父节点来进行调用的。
XML中循环删除某个节点的陷阱
结果如下:
XML中循环删除某个节点的陷阱
对于单个删除,很简单。
[需求2]:删除所有书籍的year元素
一般的写法如下:
XML中循环删除某个节点的陷阱
结果如下:
XML中循环删除某个节点的陷阱
结果很奇葩,处在奇数位置的year元素删除掉了,但是偶数位置的那个却没有删除。Why?
在删除节点的同时,进行了foreach操作,导致结果出现紊乱。
[注意],在删除节点的同时,不要对他进行foreach操作

解决办法:只需要将二者分开即可。先遍历,找到所有的节点,用到保存起来,然后再对他进行删除。
XML中循环删除某个节点的陷阱
结果如下:
XML中循环删除某个节点的陷阱