Frage

Ich habe Element von etree einige Attribute, die -. Wie können wir das Attribut perticular etree Element löschen

War es hilfreich?

Lösung

Die .attrib Mitglied des Elementobjekt enthält die dict von Attributen - Sie verwenden können, .pop("key") oder del wie auf jedem anderen dict wäre ein entfernen Schlüssel-val-Paar.

Andere Tipps

Beispiel:

>>> from lxml import etree 
>>> from lxml.builder import E
>>> otree = E.div()
>>> otree.set("id","123")
>>> otree.set("data","321")
>>> etree.tostring(otree)
'<div id="123" data="321"/>'
>>> del otree.attrib["data"]
>>> etree.tostring(otree)
'<div id="123"/>'

Achten Sie darauf, manchmal müssen Sie nicht das Attribut:

Es ist immer vorgeschlagen, dass wir Ausnahmen zu behandeln.

try:
    del myElement.attrib["myAttr"]
except KeyError:
    pass

Sie brauchen nicht zu try/except während Sie einen Schlüssel knallen, die nicht verfügbar ist. Hier ist, wie Sie können dies tun.

Code

import xml.etree.ElementTree as ET

tree = ET.parse(file_path)
root = tree.getroot()      

print(root.attrib)  # {'xyz': '123'}

root.attrib.pop("xyz", None)  # None is to not raise an exception if xyz does not exist

print(root.attrib)  # {}

ET.tostring(root)
'<urlset> <url> <changefreq>daily</changefreq> <loc>http://www.example.com</loc></url></urlset>'
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top