he tratado de usar la respuesta en esta pregunta, pero no puede hacer que funcione: How to create "virtual root" with Python's ElementTree?Cómo crear <!DOCTYPE> con cElementTree de Python
Aquí está mi código:
import xml.etree.cElementTree as ElementTree
from StringIO import StringIO
s = '<?xml version=\"1.0\" encoding=\"UTF-8\" ?><!DOCTYPE tmx SYSTEM \"tmx14a.dtd\" ><tmx version=\"1.4a\" />'
tree = ElementTree.parse(StringIO(s)).getroot()
header = ElementTree.SubElement(tree,'header',{'adminlang': 'EN',})
body = ElementTree.SubElement(tree,'body')
ElementTree.ElementTree(tree).write('myfile.tmx','UTF-8')
Al abrir la resultante archivo 'myfile.tmx', contiene esto:
<?xml version='1.0' encoding='UTF-8'?>
<tmx version="1.4a"><header adminlang="EN" /><body /></tmx>
¿Qué me falta? o, ¿hay una mejor herramienta?
¿Puedes explicar cómo agregaste una nueva línea al xml? – Learner
@Learner: lo agregué manualmente para facilitar la lectura. Si desea tener XML con nuevas líneas de ElementTree, busque cómo imprimir bastante XML. – demalexx