특정 태그를 찾아서 그 내용을 기반으로 부모 태그와 내용을 제거하려고하지만 답변을 찾을 수 없습니다. 내가하고 싶은 것은 그것이 내가 <role>Primary</role>
가에 존재하는 전체 <crew>
블록을 삭제할 않는 경우 <role>Primary</role>
가하는 <crew>
블록에 존재하는지 확인하기 위해 검색이의 부모,자식 태그 값을 기반으로 태그 및 내용을 제거합니다 - python lxml
<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>
입니다 : 여기 내 XML이다.
<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>
태그를 제거하고이 내용을합니다. 친절하게 생각합니다.
을 감안할 때 XML이 유효하지 않습니다. – falsetru