У меня были проблемы с взломом этого. У меня есть RSS-канал в виде файла XML. Упрощенно это выглядит так:
<rss version="2.0">
<channel>
<title>My RSS Feed</title>
<link href="https://www.examplefeedurl.com">Feed</link>
<description></description>
<item>...</item>
<item>...</item>
<item>...</item>
<item>
<guid></guid>
<pubDate></pubDate>
<author/>
<title>Title of the item</title>
<link href="https://example.com" rel="alternate" type="text/html"/>
<description>
<![CDATA[<a href="https://example.com" target="_blank" rel="noopener noreferrer">View Example</a>]]>
</description>
<description>
<![CDATA[<p>This actually contains a bunch of text I want to work with. If this text contains certain strings, I want to get rid of the whole item.</p>]]>
</description>
</item>
<item>...</item>
</channel>
</rss>
Моя цель - проверить, содержит ли второй тег описания определенные строки. Если он содержит эту строку, я хотел бы полностью удалить ее. В настоящее время в моем коде у меня есть это:
doc = lxml.etree.fromstring(testString)
found = doc.findall('channel/item/description')
for desc in found:
if "FORBIDDENSTRING" in desc.text:
desc.getparent().remove(desc)
И он удаляет только второй тег описания, который имеет смысл, но я хочу, чтобы весь элемент исчез.
Я не знаю, как удержать элемент item, если у меня есть только ссылка desc.
Я пробовал гуглить так же, как и поиск здесь, но ситуации, которые я вижу, просто хотят удалить тег, как я делаю сейчас, странно, я не наткнулся на пример кода, который хочет избавиться от всего родительского объекта ,
Любые указатели на документацию / учебные пособия или помощь очень приветствуются.