2009-07-01 30 views
5

Estoy tratando de usar ElementTree de Python para generar un archivo XHTML.¿Cómo crear "raíz virtual" con ElementTree de Python?

Sin embargo, ElementTree.Element() simplemente me permite crear una sola etiqueta (por ejemplo, HTML). Necesito crear una especie de raíz virtual o lo que sea que se llame para poder poner varios, DOCTYPES, etc.

¿Cómo hago eso? Gracias

Respuesta

7

No sé si hay una manera mejor, pero he visto este hecho:

crear el documento base como una cadena:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html></html> 

continuación, analizar esa cadena para iniciar su nuevo documento.

+2

+1, confirmó, elementtree no se puede añadir/crear tipo de documento, por lo que esta solución es (pero puede analizarlo!) tan limpio como sea posible. –

0

Tengo/tuve el mismo problema. cuando analizo un documento y lo vuelvo a escribir, la defensa del doctype ya no existe. pero he encontrado una solución navegar por la documentación:

link text

Guardar archivos HTML #

Para guardar un archivo HTML plano, acaba de escribir el árbol.

tree.write("outfile.htm") 

Esto funciona bien, siempre y cuando el archivo no containg ninguna etiqueta SCRIPT o estilo incrustadas.

Si lo desea, puede agregar una referencia DTD al principio del archivo:

file = open("outfile.htm", "w") 
file.write(DTD + "\n") 
tree.write(file) 
file.close() 
Cuestiones relacionadas