Сначала найдите все теги x
, используя find_all('x')
. Затем, если тег содержит тег <c>
(который можно проверить с помощью if x.find('c'):
), удалите тег с помощью decompose()
.
xml = '''
<x id = '123'>
<b><c>abcd</c></b>
</x>
<x id ='456'>
<z></z>
</x>
<x id ='567'>
<c>def</c>
</x>'''
soup = BeautifulSoup(xml, 'html.parser')
for x in soup.find_all('x'):
if x.find('c'):
x.decompose()
print(soup)
Выход:
<x id="456">
<z></z>
</x>