Ich versuche, Daten aus mehreren Listen im XML-Format zu speichern, aber ich kann nicht verstehen, wie Sie die XML-Anzeige richtig machen. Ein Beispiel für meinen Code jetzt wie folgt:Erstellen ordnungsgemäß verschachtelter XML-Ausgabe in Python
from lxml import etree
#Create XML Root
articles = etree.Element('root')
#Create Lists & Data
t_list = ['title1', 'title2', 'title3', 'title4', 'title5']
c_list = ['content1', 'content2', 'content3', 'content4', 'content5']
sum_list = ['summary1', 'summary2', 'summary3', 'summary4', 'summary5']
s_list = ['source1', 'source2', 'source3', 'source4', 'source5']
i = 0
for t in t_list:
for i in range(len(t_list)):
#Create SubElements of XML Root
article = etree.SubElement(articles, 'Article')
titles = etree.SubElement(article, 'Title')
summary = etree.SubElement(article, 'Summary')
source = etree.SubElement(article, 'Source')
content = etree.SubElement(article, 'Content')
#Add List Data to SubElements
titles.text = t_list[i]
summary.text = sum_list[i]
source.text = s_list[i]
content.text = c_list[i]
print(etree.tostring(articles, pretty_print=True))
Mein Stromausgang in einem sehr wirre Art und Weise geschrieben, die alle auf einer einzelnen Zeile wie folgt:
b'<root>\n <Article>\n <Title>title1</Title>\n <Summary>summary1</Summary>\n <Source>source1</Source>\n <Content>content1</Content>\n </Article>\n
Es sieht aus wie die pretty_print
Funktion innerhalb lxml
fügt richtigen Einzug, sowie \n
bricht, wie ich möchte, aber es scheint nicht richtig interpretiert während der Ausgabe; es schreibt auf einer einzigen Zeile.
Die Ausgabe Ich versuche, ist wie folgt zu erhalten:
<root>
<Article>
<Title>title1</Title>
<Summary>summary1</Summary>
<Source>source1</Source>
<Content>content1</Content>
</Article>
Idealerweise möchte ich für meine Ausgabe in der richtigen verschachtelten Format als gültige XML-Dokument und die Anzeige betrachtet werden.
das 'encoding =" unicode "' tat genau das, was ich wollte – theeastcoastwest