Können Sie mir bitte mit der folgenden Anforderung helfen. Ich habe versucht, so viel wie möglich über diese Anforderung zu erklären. Bitte lassen Sie mich wissen, wenn Sie weitere Informationen benötigen. Danke im Voraus für Ihre Antwort.Erstellen von XML mit Python Elementbaum libarary
Ich habe eine Oracle-Tabelle mit den folgenden Daten:
Tag_name, tag_value
empname Smith
empno 5102
sal 600
deptno 10
empname Jhon
empno 4102
sal 800
deptno 20
und meine xml wie
<employeedetails>
<employee>
<empname>Smith</empname>
<empno>5102</empno>
<sal>600</sal>
<deptno>10</deptno>
</employee>
<employee>
<empname>john</empname>
<empno>4102</empno>
<sal>800</sal>
<deptno>20</deptno>
</employee>
<employeedetails>
aussehen sollten
unten ist der Code, die XML-
from xml.etree.ElementTree import Element, SubElement, Comment
from xml.etree import ElementTree
from xml.dom import minidom
import cx_Oracle
def prettify(elem):
"""Return a pretty-printed XML string for the Element.
"""
rough_string = ElementTree.tostring(elem, 'utf-8')
reparsed = minidom.parseString(rough_string)
return reparsed.toprettyxml(indent=" ")
db = cx_Oracle.connect("username/[email protected]")
cursor = db.cursor()
cursor.arraysize = 500
cursor.execute("select * from employee") parameter
top = Element('employeedetails')
child = SubElement(top,'employee')
for i in cursor:
sub_child = SubElement(child, i[1])
sub_child.text = i[2]
print (prettify(top))
zu erzeugen ist mit
anstatt die gewünschte Ausgabe zu bekommen bekomme ich eine Ausgabe wie unten
<employeedetails>
<employee>
<empname>Smith</empname>
<empno>5102</empno>
<sal>600</sal>
<deptno>10</deptno>
<empname>john</empname>
<empno>4102</empno>
<sal>800</sal>
<deptno>20</deptno>
</employee>
<employeedetails>
Im Grunde für den zweiten Mitarbeiter wird das schließende Tag nicht gedruckt. Bitte beraten. Vielen Dank!