Я работаю в парсере Doxygen XML. Моя проблема на самом деле проста, мне нужно использовать L XML tostring
, чтобы получить необработанное содержимое элемента XML.
У меня это работает с ETree, но я переключился на LMXL так Я получаю strip_tags
.
Допустим, у меня есть этот XML файл:
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="1.8.16">
<child2/>
<child3/>
</root>
И я делаю это:
tree = ET.parse('new1.xml')
root = tree.getroot()
child3 = root.find("./child3")
objectify.deannotate(child3, cleanup_namespaces=True, xsi=True, pytype=True)
etree.cleanup_namespaces(child3)
child3.nsmap.clear()
etree.strip_attributes(child3, 'nsmap')
print(ET.tostring(child3, encoding='unicode', pretty_print=True))
Это то, что я получаю :
<child3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
Это то, что я ХОЧУ:
<child3/>
Можно ли добавить tostring в NOT print nsmap?
Я пытался :
Если я попытаюсь
root.nsmap = None
, я получу исключение:
AttributeError: attribute 'nsmap' of 'lxml.etree._Element' objects is not writable
Я использую Python 3,7 64 бит с Windows 10.
Спасибо.