У меня есть xml-файл, который мне нужно открыть и внести некоторые изменения, одним из этих изменений является удаление пространства имен и префикса, а затем сохранение в другой файл. Вот XML:Удалить пространство имен и префикс из xml в python с помощью lxml
<?xml version='1.0' encoding='UTF-8'?>
<package xmlns="http://apple.com/itunes/importer">
<provider>some data</provider>
<language>en-GB</language>
</package>
я могу сделать другие изменения, мне нужно, но не могу найти, как удалить пространство имен и префикс. Это reusklt XML мне нужно:
<?xml version='1.0' encoding='UTF-8'?>
<package>
<provider>some data</provider>
<language>en-GB</language>
</package>
И вот мой скрипт, который будет открывать и анализировать XML и сохранить его:
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')
Так как бы я добавить код в моем сценарии, которые будут удалены пространство имен и префикс?
Поиск() на elem.tag не удастся, если это встроенная функция Комментарий. Вы хотите проверить строку с чем-то вроде следующего: if isinstance (elem.tag, basestring): do_something(). Это для 2.x. Используйте isinstance (elem.tag, str) в 3.x. –
@JeffLoughridge, Спасибо за комментарий. Я соответствующим образом обновил ответ. – falsetru