ich lxml in einem Versuch, die Ausgabe des folgenden XML-Code verwende:Hinzufügen eines Subelement zu einem Subelement lxml
<annotation>
<folder>images</folder>
<filename>IMG_8111.JPG</filename>
<size>
<width>400</width>
<height>400</height>
</size>
<segmented>0</segmented>
<object>
<name>Bottle</name>
<bndbox>
<xmin>16</xmin>
<ymin>71</ymin>
<xmax>390</xmax>
<ymax>323</ymax>
</bndbox>
</object>
</annotation>
Im mit this Tutorial lernen, wie man lxml für meine Bedürfnisse zu implementieren. Das Problem, mit dem ich konfrontiert bin, ist, dass meine gewünschte Ausgabe Unterelemente zu Unterelementen hat. Zum Beispiel - <annotation>
ist mein Hauptelement, und dann sind <folder>
, <filename>
und <size>
Unterelemente, aber dann <height>
und <width>' are subelements to the
`Unterelemente. Wie mache ich das mit lxml? Ich habe folgendes bisher:
from lxml import etree
import xml.etree.cElementTree as ET
root = etree.Element("annotation")
etree.SubElement(root, "folder").text = "Child 1"
etree.SubElement(root, "filename").text = "Child 2"
size = etree.SubElement(root, "size").text = "Child 3"
etree.SubElement(size, "width").text = "Child 4"
with open ('xmltree.xml', 'wb') as f:
f.write(etree.tostring(root, pretty_print = True))
Aber es führt den folgenden Fehler:
etree.SubElement(size, "width").text = "Child 4"
TypeError: Argument '_parent' has incorrect type (expected lxml.etree._Element, got str)
Bitte helfen Sie mir, was ich falsch mache und wie es weitergeht.
Vielen Dank! Das hat sich um den Fehler gekümmert und ich verstehe auch warum jetzt. Bitte sehen Sie sich meine Antwort unten an – Veejay