¿Es posible usar lxml (o la biblioteca incorporada etree) para crear un objeto que represente un fragmento de xml, pero contenga dos (o más) árboles disjuntos (es decir, cada árbol tiene su propia raíz separada, pero no comparten antecesor común?)?lxml ¿Crear fragmento XML sin elemento raíz?
Es decir, ¿hay algo que podría representar la siguiente sin crear otro elemento para sostener ambos:
<tree id="A"><anotherelement/></tree>
<tree id="B"><yetanotherelement/></tree>
no puedo ver nada en la documentación lxml que permitiría eso, y parece stackoverflow no tener nada directamente en el punto.
El caso de uso aquí es que estoy generando xml mediante programación, y los fragmentos se ensamblarán en un solo documento para su salida. Me gustaría un objeto que no necesite iterar/caso especial, simplemente pasar a los métodos lxml como si fuera un árbol apropiado.
(Soy consciente de que esos fragmentos no serían por sí mismos un documento xml completo y correcto; quiero almacenar los productos intermedios antes de ensamblarlos en dicho documento).
¿Qué tal si hacemos una lista de objetos lxml? Eso es más o menos lo que tienes ... – larsks
@larsks Correcto, pero luego necesito escribir un código que maneje la presencia de una lista, en lugar de pasar un objeto del tipo que la API xml espera. Eso también implica una envoltura especial en mi código, o siempre una lista. Por eso sería preferible. – Marcin