子のコンテンツに基づいて特定のタグを見つけ、親タグとコンテンツを削除しようとしていますが、答えが見つかりません。ここに私のxmlがあります:
<video>
<crew>
<member billing="top">
<name>Some Guy</name>
<roles>
<role>Painter</role>
<role>Decorator</role>
</roles>
</crew>
<crew billing="top">
<name>Another Guy</name>
<roles>
<role>Primary</role>
</roles>
</crew>
</crew>
</video>
私がやりたいのは、がブロックに存在するかどうかを検索することです。存在する場合は、<role>Primary</role>
が存在するブロック<crew>
全体を削除したいのですが、それは親です。したがって、結果は次のようになります。<crew>
<role>Primary</role>
<video>
<crew>
<member billing="top">
<name>Some Guy</name>
<roles>
<role>Painter</role>
<role>Decorator</role>
</roles>
</crew>
</video>
<crew>
最後にない場合があり、他の多くのタグに埋もれている可能性があるため、そのブロックに含まれている場合、それが存在するブロック<role>Primary</role>
全体を削除したいことがわかって<crew>
います。私は試しました:
for find1 in root.iter(tag='role'):
find1 = find1.text
if find1 == "Primary":
path = tree.xpath('//video/crew')
etree.strip_elements(path, 'member')
<crew>
ただし、これによりすべてのタグとその内容が削除されます。敬具。