Mam plik xml, który muszę otworzyć i wprowadzić pewne zmiany, jedną z tych zmian jest usunięcie przestrzeni nazw i prefiksu, a następnie zapisanie do innego pliku. Oto xml:Usuń przestrzeń nazw i prefiks z xml w pythonie używając lxml
<?xml version='1.0' encoding='UTF-8'?>
<package xmlns="http://apple.com/itunes/importer">
<provider>some data</provider>
<language>en-GB</language>
</package>
mogę dokonać innych zmian muszę, ale nie można dowiedzieć się, jak usunąć nazw i prefiks. Jest to xml reusklt muszę:
<?xml version='1.0' encoding='UTF-8'?>
<package>
<provider>some data</provider>
<language>en-GB</language>
</package>
I tu jest mój skrypt, który będzie otwierać i analizowania XML i zapisać go:
metadata = '/Users/user1/Desktop/Python/metadata.xml'
from lxml import etree
parser = etree.XMLParser(remove_blank_text=True)
open(metadata)
tree = etree.parse(metadata, parser)
root = tree.getroot()
tree.write('/Users/user1/Desktop/Python/done.xml', pretty_print = True, xml_declaration = True, encoding = 'UTF-8')
Tak jak bym dodać kod w moim skryptu, który usunie przestrzeń nazw i prefiks?
Funkcja find() na elem.tag zakończy się niepowodzeniem, jeśli jest wbudowaną funkcją Komentarz. Będziesz chciał sprawdzić ciąg znaków z następującym typem: if isinstance (elem.tag, basestring): do_something(). To jest dla 2.x. Użyj isinstance (elem.tag, str) w 3.x. –
@JeffLoughridge, Dziękuję za komentarz. Odpowiednio zaktualizowałem odpowiedź. – falsetru