Hi Gerold!
Danke für deinen Tipp, doch leider ist es so, dass ich die XML-Datei auf jedem Fall auch anlegen möchte, da sie für eine Datenanzeige via XSL verwendet wird und der Anwender gleichzeitig die Möglichkeit haben soll, die Datei herunter zu laden.
Mein Script, welches die Datei jedesmal beim Aufbau der Seite (auf welcher der Link zur Datei erscheint) sieht so aus:
Code: Alles auswählen
id = 'Startliste_%s.xml' %datum
startlisten_ordner = getattr(context, 'Startlisten', None)
try:
startlisten_ordner.manage_delObjects(id)
except:
pass
if datum:
xml_Header = '<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>\n<!DOCTYPE startliste SYSTEM "startliste.dtd">\n<?xml-stylesheet type="text/xsl" href="startliste.xsl"?>\n\n'
data = xml_Header
data = data + '<startliste>\n'
data = data + '<datum>%s</datum>\n' % datum
sql_result = context.querie_flg_alle_fluege_zu_einem_datum(flg_date = context.format_datestring_to_sql_py(datum))
index = 0
for x in sql_result:
data = data + '<flug>\n'
data = data + '<Nr>' + str(sql_result[index][9]) + '</Nr>\n'
data = data + '<Luftfahrzeugfuehrer>' + str(sql_result[index][10]) + '</Luftfahrzeugfuehrer>\n'
data = data + '<Begleiter>' + str(sql_result[index][12]) + '</Begleiter>\n'
data = data + '<Luftfahrzeugmuster>' + str(sql_result[index][15]) + '</Luftfahrzeugmuster>\n'
data = data + '<Luftfahrzeugkennzeichen>' + str(sql_result[index][14]) + '</Luftfahrzeugkennzeichen>\n'
data = data + '<Startart>' + str(sql_result[index][22]) + '</Startart>\n'
if str(sql_result[index][18])[:5] != '00:00':
data = data + '<Startzeit>' + str(sql_result[index][18])[:5] + '</Startzeit>\n'
if str(sql_result[index][19])[:5] != '00:00':
data = data + '<Landezeit>' + str(sql_result[index][19])[:5] + '</Landezeit>\n'
if str(sql_result[index][20])[:5] != '00:00':
data = data + '<Segelflugzeit>' + str(sql_result[index][20])[:5] + '</Segelflugzeit>\n'
if str(sql_result[index][21])[:5] != '00:00':
data = data + '<Motorflugzeit>' + str(sql_result[index][21])[:5] + '</Motorflugzeit>\n'
data = data + '<Bemerkungen>' + str(sql_result[index][23]).replace('\n', '') + '</Bemerkungen>\n'
data = data + '<Ausbildung>' + str(sql_result[index][24]) + '</Ausbildung>\n'
data = data + '</flug>\n'
index += 1
data = data + '</startliste>\n'
data = context.code_utf_to_iso(data)
startlisten_ordner.manage_addFile(
id,
file = data,
title = 'Startliste vom %s' % datum,
content_type = "text/plain"
)
return None
Mein Link nennt sich Druckansicht und soll erst die XML-Datei mit dem obigen Script erstellen lassen und anschließend direkt die Datei anzeigen (also auf sie verweisen). Mit dem Punkt "Ziel speichern unter..." bietet sich zugleich eine Downloadmöglichkeit an.
Das Problem ist momentan nur, dass der Seitenaufbau unnötig lange dauert. Die Seite wiederum enthält ein Formular, welches den Inhalt der XML-Datei sozusagen verändert, wonach sie beim Download stets neu geschrieben werden sollte.
Ich hoffe, dich mit dieser Beschreibung nicht zu getextet zu haben
Grüße
JR