53 Stimmen

Wie entfernt man das Attribut eines etree-Elements?

Ich habe Element von etree mit einigen Attributen - wie können wir das Attribut von perticular etree Element löschen.

52voto

Amber Punkte 473552

En .attrib Mitglied des Elementobjekts enthält das Diktat der Attribute - Sie können .pop("key") o del wie bei jedem anderen Diktat auch um ein Schlüssel-Werte-Paar zu entfernen.

14voto

A.J. Punkte 7461

Sie müssen nicht try/except während Sie eine Taste drücken, die nicht verfügbar ist. So können Sie 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>'

10voto

macm Punkte 1859

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"/>'

Passen Sie auf sich auf, manchmal haben Sie nicht das richtige Attribut:

Es wird immer vorgeschlagen, dass wir mit Ausnahmen umgehen.

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

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X