Ist es möglich, mithilfe von lxml (oder der integrierten etree-Bibliothek) ein Objekt zu erstellen, das ein XML-Fragment darstellt, aber zwei (oder mehr) getrennte Bäume enthält (dh jeder Baum hat seinen eigenen Stamm, aber keinen gemeinsamen Vorgänger))lxml XML-Fragment ohne Root-Element erstellen?
Das heißt, ist es etwas, das die folgenden ohne die Schaffung ein weiteres Element darstellen könnten beide halten:
<tree id="A"><anotherelement/></tree>
<tree id="B"><yetanotherelement/></tree>
ich nichts in der lxml Dokumentation sehen, die das erlauben würde, und Stackoverflow scheint nichts direkt am Punkt haben.
Der Anwendungsfall hier ist, dass ich XML programmgesteuert erzeuge, und die Fragmente werden in einem Dokument für die Ausgabe zusammengestellt. Ich möchte ein Objekt, das ich nicht überlesen muss/Spezialfall, nur an die lxml-Methoden übergeben, als wäre es ein richtiger Baum.
(Ich bin mir bewusst, dass solche Fragmente nicht von selbst ein vollständiges und korrektes XML-Dokument sein würden; ich möchte die Zwischenprodukte vor dem Zusammenbau in einem solchen Dokument speichern).
Wie wäre es nur mit einer Liste von lxml-Objekten? Das ist ziemlich genau das, was Sie haben ... – larsks
@larks Richtig, aber dann muss ich Code schreiben, der das Vorhandensein einer Liste handhabt, anstatt ein Objekt des Typs zu übergeben, den die XML-API erwartet. Dazu gehört entweder eine spezielle Hülle in meinem Code oder immer eine Liste. Deshalb wäre es vorzuziehen. – Marcin