Не могли бы вы помочь мне с нижеследующим требованием. Я попытался объяснить как можно больше об этом требовании. Пожалуйста, дайте мне знать, если вам нужна дополнительная информация. Заранее благодарим за ваш ответ.Создание XML с использованием python Элементарное дерево libarary
У меня есть таблица оракула со следующими данными:
Tag_name, tag_value
empname Smith
empno 5102
sal 600
deptno 10
empname Jhon
empno 4102
sal 800
deptno 20
и мой XML должен выглядеть
<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>
ниже код я использую для создания 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))
вместо того, чтобы получать желаемый выход, получая выход, как показано ниже
<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>
В основном для второго сотрудника закрывающий тег не печатает. Пожалуйста, порекомендуйте. Благодаря!