XML-Datei erzeugen

Hallo miteinander,

weiß jemand, ob LibO sowas schon ab Werk oder eventuell mit Hilfe
einer Extension kann?

Und zwar möchte ich möglichst automatisiert eine einfache XML-Datei
in dem unter [1] angegebenen Schema aus der unter [2] angegebenen
CSV-Quell-Datei-Struktur erzeugen, wobei lediglich die zusammen
gehörenden Einträge unter <Name> und <DateTime> in der XML-Datei mit
rd. 300 Variablen aus der CSV-Datei zu füllen wären, Recurrent wäre
bei allen Einträgen immer 'yes' und Image immer leer?

Wie geht das am einfachsten?

[1]
  <CalendarEvent>
    <Name>XXXXXXXXXXXXXXXXXXXXXX</Name>
    <DateTime>YYYY-MM-DDT00:00:00</DateTime>
    <Recurrent>yes</Recurrent>
    <Image></Image>
  </CalendarEvent>

[2]
Name_1XXXXXXX,YYYY-MM-DDT00:00:00
Name_2XXXXXXX,YYYY-MM-DDT00:00:00
.
.
.

Hallo Franklin,

ich hab gerade etwas mit xml zu tun; und schlage dir folgendes vor

wenn du die Struktur

<CalendarEvent>

     <Name>XXXXXXXXXXXXXXXXXXXXXX</Name>
     <DateTime>YYYY-MM-DDT00:00:00</DateTime>
     <Recurrent>yes</Recurrent>
     <Image></Image>
   </CalendarEvent>

in eine linie machst

<CalendarEvent><Name>XXXXXXXXXXXXXXXXXXXXXX</Name><DateTime>YYYY-MM-DDT00:00:00</DateTime><Recurrent>yes</Recurrent><Image></Image></CalendarEvent>

zwischen >< mit Suchen/Erstzen in >,< und den langen String xxxx in , und YYYY-MM-DDT00:00:00
  in , umwandelst; kanst du alles als csv speichern und kann in Calc öffnen

da hast du dann eine Tabelle in der in jeder Spalte deine <Platzhalter>-Struktur und anstelle der xxx und YYYY-MM-DDT00:00:00 eine leere Spalte ist

dann öffnest du die unter 2 genannte csv, hast dann ebenfalls eine Tabelle; kopierst die Spalte mit den namen - gehst zu anderen Tabelle und kopierstst die Namen in der Spalte zwischen Name Name ein
für Date dito
dann die übrigen Spalten mit -nach unten ausfüllen- komplettieren

diese Tabelle als csv -mit Komma separiert- exportieren

diese csv in Writer öffnen und alle , durch nix -sprich überhaupt nix ersetzen

wnn du die xml-Struktur in mehreren linien haben willst, musst du >< durch > und dem writer-Kürzel für <Carriage Return><Line Feed>< ersetzen - </CalendarEvent> ebenfalls durch
</CalendarEvent><Carriage Return><LF> ersetzen

diese Datei als Text speichern und dann deren endung txt durch xml erstzen

sieht nach viel Arbeit aus, ist aber eher wenig

hoffe es hilft

Gruss
Martin

Hallo Martin,

vielen Dank für Deine Hinweise ... damit hab ich es dann jetzt auch
hinbekommen ... Ich musste dann zwar noch wegen der Umlaute mit der
Kodierung von ANSI nach UTF-8 wandeln, aber irgendwann hat das
Zielprogramm die Datei dann auch akzeptiert, so dass ich nicht alle
300 Geburtstage manuell eingeben musste.

Als kleiner Wermutstropfen bleibt die Tatsache, dass das
Kalender-Gestaltungsprogramm von CEWE (Paradies FOTO) die Einträge
leider nicht wirklich gut verarbeitet - bei zu langen Namen oder
mehreren Geburtstagen an einem Tag wird einfach der Text
abgeschnitten. Auf diese Gefahr wird zwar im Programm auch explizit
hingewiesen, aber damit ist das Problem natürlich trotzdem nicht aus
der Welt - schade. Da hat sich Photokalender von Aquasoft schon
intelligenter verhalten und bei vielen Einträgen an einem Tag dann
von alleine die Schriftgröße so weit reduziert, dass auf jeden Fall
immer alle Einträge auch in das Tagesfeld reinpassten.

Resümierend ist es dann aber offensichtlich doch so, dass es LibO
weder ab Werk noch mit einem AddOn schafft, eine CSV-Datei direkt
(nach entsprechendem Feld-Mapping) in eine XML-Datei zu überführen,
sondern dass dazu die von Dir genannte Handarbeit mit diversen
SUR-Vorgängen notwendig ist.

Nochmal danke und schönen Sonntag ...

.... und tschüss

            Franklin

Hallo Franklin,

schön, dass meine Antwort dir geholfen hat

Bezüglich deinem Resümee: vielleicht ist eine Lösung via csv als Calc-Tabelle der Namen als Datenbank und Writer-Dokument mit ner Art Serienbrief-Funktion oder Etiketten-Funktion mit Datenbankplatzhaltern möglich.
mit dieser Technik habe ich aber keine Erfahrung; bisher habe ich immer nur mit Platzhaltern je Seite und nie mit Platzhaltern je Zeile zu tun

Da können die anderen User dir vielleicht helfen oder mach dich selber im Internet bzw LO-Hilfe dazu schlau :wink:

viele Grüsse
Martin

Hallo Martin,

Hallo Franklin,

schön, dass meine Antwort dir geholfen hat

Bezüglich deinem Resümee: vielleicht ist eine Lösung via csv als
Calc-Tabelle der Namen als Datenbank und Writer-Dokument mit ner
Art Serienbrief-Funktion oder Etiketten-Funktion mit
Datenbankplatzhaltern möglich.

Ah ja, natürlich ... warum ich da nicht auch gleich selber drauf
gekommen bin ... mit Etiketten-Druck habe ich schon öfters was gemacht.

mit dieser Technik habe ich aber keine Erfahrung; bisher habe ich
immer nur mit Platzhaltern je Seite und nie mit Platzhaltern je
Zeile zu tun

Da können die anderen User dir vielleicht helfen oder mach dich
selber im Internet bzw LO-Hilfe dazu schlau :wink:

Nachdem das aktuelle "Problem" über die Handarbeit jetzt erstmal
"gelöst" ist, erinnere ich mich hoffentlich beim nächsten Mal wieder
daran und probiere dann diese Serienbrief-Alternative aus.

viele Grüsse Martin

Nochmals danke auch für diese Anregung ...

.... und tschüss

            Franklin

Hallo Martin,

vielen Dank für Deine Hinweise ... damit hab ich es dann jetzt
auch hinbekommen ... Ich musste dann zwar noch wegen der
Umlaute mit der Kodierung von ANSI nach UTF-8 wandeln, aber
irgendwann hat das Zielprogramm die Datei dann auch akzeptiert,
so dass ich nicht alle 300 Geburtstage manuell eingeben
musste.

Als kleiner Wermutstropfen bleibt die Tatsache, dass das
Kalender-Gestaltungsprogramm von CEWE (Paradies FOTO) die
Einträge leider nicht wirklich gut verarbeitet - bei zu langen
Namen oder mehreren Geburtstagen an einem Tag wird einfach der
Text abgeschnitten. Auf diese Gefahr wird zwar im Programm auch
explizit hingewiesen, aber damit ist das Problem natürlich
trotzdem nicht aus der Welt - schade. Da hat sich Photokalender
von Aquasoft schon intelligenter verhalten und bei vielen
Einträgen an einem Tag dann von alleine die Schriftgröße so
weit reduziert, dass auf jeden Fall immer alle Einträge auch in
das Tagesfeld reinpassten.

Resümierend ist es dann aber offensichtlich doch so, dass es
LibO weder ab Werk noch mit einem AddOn schafft, eine CSV-Datei
direkt (nach entsprechendem Feld-Mapping) in eine XML-Datei zu
überführen, sondern dass dazu die von Dir genannte Handarbeit
mit diversen SUR-Vorgängen notwendig ist.

Nochmal danke und schönen Sonntag ...

.... und tschüss

Franklin

Hallo Franklin,

ich hab gerade etwas mit xml zu tun; und schlage dir
folgendes vor

wenn du die Struktur

<CalendarEvent>

<Name>XXXXXXXXXXXXXXXXXXXXXX</Name>
<DateTime>YYYY-MM-DDT00:00:00</DateTime>
<Recurrent>yes</Recurrent> <Image></Image> </CalendarEvent>

in eine linie machst

<CalendarEvent><Name>XXXXXXXXXXXXXXXXXXXXXX</Name><DateTime>YYYY-MM-DDT00:00:00</DateTime><Recurrent>yes</Recurrent><Image></Image></CalendarEvent>

zwischen >< mit Suchen/Erstzen in >,< und den langen String xxxx in
, und YYYY-MM-DDT00:00:00

Hallo Franklin,
Spart ne Menge Klicks und Eingaben

bezüglich der Umlaute ist mir nachträglich noch eingefallen: dazu nutze ich die Batch-Funktion des AddOn "Alternatives Suchen und Ersetzen"

ich hab das Problem, wenn ich aus einem uralten Dos-Buchführungsprogramm Listen zum Ausdrucken bearbeiten muss

Gruss
Martin