Python元素树删除/编辑节点

Python元素树删除/编辑节点,python,xml,elementtree,Python,Xml,Elementtree,我目前正在用python创建一个需要xml操作的项目。要操作xml文件,我将使用Elementtree。以前从未使用过该模块。我曾经使用过php,但完全不同 我有以下xml文件: <myvideos> <video> <title>video1</title> <plot>description bla bla bla</plot> <duration>50

我目前正在用python创建一个需要xml操作的项目。要操作xml文件,我将使用Elementtree。以前从未使用过该模块。我曾经使用过php,但完全不同

我有以下xml文件:

<myvideos>
    <video>
        <title>video1</title>
        <plot>description bla bla bla</plot>
        <duration>50</duration>
    </video>
    <video>
        <title>name2</title>
        <plot>another description bla bla bla</plot>
        <duration>37</duration>
    </video>
    <video>
        <title>another name etc</title>
        <plot>description etc...</plot>
        <duration>99</duration>
    </video>
</myvideos>

视频1
描述布拉布拉布拉布拉布拉布拉
50
姓名2
另一个描述布拉布拉布拉布拉布拉布拉
37
另一个名字等
描述等。。。
99
我想做的是按视频标题搜索(例如“name2”),然后删除或编辑该视频条目。 例如:

1) 搜索标题为“name2”的视频并删除视频条目:

<myvideos>
    <video>
        <title>video1</title>
        <plot>description bla bla bla</plot>
        <duration>50</duration>
    </video>
    <video>
        <title>another name etc</title>
        <plot>description etc...</plot>
        <duration>99</duration>
    </video>
</myvideos>

视频1
描述布拉布拉布拉布拉布拉布拉
50
另一个名字等
描述等。。。
99
2) 搜索标题为“name2”的视频并编辑该条目:

<myvideos>
    <video>
        <title>video1</title>
        <plot>description bla bla bla</plot>
        <duration>50</duration>
    </video>
    <video>
        <title>name2renamed</title>
        <plot>edited</plot>
        <duration>9999</duration>
    </video>
    <video>
        <title>another name etc</title>
        <plot>description etc...</plot>
        <duration>99</duration>
    </video>
</myvideos>

视频1
描述布拉布拉布拉布拉布拉布拉
50
名字2迷恋
编辑
9999
另一个名字等
描述等。。。
99

是的,可以使用ElementTree进行此操作。
.remove()
函数可以从XML树中删除XML元素。下面是如何从XML文件中删除所有名为
name2
的视频的示例:

import xml.etree.ElementTree as ET
tree = ET.parse('in.xml')
root = tree.getroot()

items_to_delete = root.findall("./video[title='name2']")
for item in items_to_delete:
    root.remove(item)

tree.write('out.xml')
参考:


欢迎使用堆栈溢出!这个网站是一个问答网站。读者,比如你自己,会提出问题,而其他读者会试图回答。我注意到你的帖子缺少一个问题。你有什么特别的问题要问吗?(还有,你可能想复习。)对不起,我是新来的。我想问一下,使用ElementTree是否可以做到这一点。是的,这是可能的。我将首先阅读ElementTree教程,特别是标题为“修改XML文件”的部分。旁白:我发现修改XML文件更有用。谢谢。真的很有帮助。