Zusammenführen mehrere XML Dokumente in ein HTML via XSLT
Mindgap
- xsl
0 André Laugks0 Thomas J.S.0 Mindgap0 svg4you0 Thomas J.S.
Hallo,
ich stehe vor der Aufgabe, ein XSLT Stylesheet für die Transformation mehrerer XML Dokumente in eine HTML Datei zu entwickeln. Genaugenommen handelt es sich um ein Newsletter, der mit unterschiedlichen Artikeln gefüllt werden soll.
Die Frage ist jetzt, wie gehe ich am besten an die XSLT Geschichte ran? Eine normale Transformation stellt für mich kein Problem dar. Doch bei dieser Aufgabe habe ich das Problem, dass ich
mehrere XML Dokumente (Artikel) vorliegen habe
das diese in unterschiedlichen Sektionen des Newsletters publiziert werden müssen.
Wer kann mir helfen?
Grüße,
Mindgap
Hallo!
mehrere XML Dokumente (Artikel) vorliegen habe
das diese in unterschiedlichen Sektionen des Newsletters publiziert werden müssen.
Mit der XPath-Funktion document() solltest Du Dein Vorhaben umsetzen können.
André Laugks
Hallo,
ich stehe vor der Aufgabe, ein XSLT Stylesheet für die Transformation mehrerer XML Dokumente in eine HTML Datei zu entwickeln. Genaugenommen handelt es sich um ein Newsletter, der mit unterschiedlichen Artikeln gefüllt werden soll.
Die Frage ist jetzt, wie gehe ich am besten an die XSLT Geschichte ran? Eine normale Transformation stellt für mich kein Problem dar. Doch bei dieser Aufgabe habe ich das Problem, dass ich
- mehrere XML Dokumente (Artikel) vorliegen habe
Es empfiehlt sich in so einenm Fall ein "Sammel-XML" zu erstellen, in der nur diese Artikel "verlinkt" sind:
<dokumente>
<artikel>http://www.exaple.org/artikel1.xml</artikel>
...
<artikel>http://www.exaple.org/artikel99.xml</artikel>
</dokumente>
Dann die XSL-Transformation auf dieses Sammeldokument anzuwenden, dabei, wie schon André sagte, mit der document()-Funktion auf die einzelnen Artikel zugreifen.
- das diese in unterschiedlichen Sektionen des Newsletters publiziert werden müssen.
Den Satz verstehe ich nicht.
Grüße
Thomas
Hallo ihr beiden, vielen Dank erstmal für eure Antworten!
- mehrere XML Dokumente (Artikel) vorliegen habe
Es empfiehlt sich in so einenm Fall ein "Sammel-XML" zu erstellen, in der nur diese Artikel "verlinkt" sind:
<dokumente>
<artikel>http://www.exaple.org/artikel1.xml</artikel>
...
<artikel>http://www.exaple.org/artikel99.xml</artikel>
</dokumente>Dann die XSL-Transformation auf dieses Sammeldokument anzuwenden, dabei, wie schon André sagte, mit der document()-Funktion auf die einzelnen Artikel zugreifen.
Das mit der Sammel-XML leuchtet mir ein. Ist es denn auch möglich, die URL´s der Artikel automatisch zu generieren? Soll bedeuten, das ich nicht jedes mal lust habe, die gesamte Sammel-XML von Hand neu zu erstellen.
- das diese in unterschiedlichen Sektionen des Newsletters publiziert werden müssen.
Den Satz verstehe ich nicht.
Sorry, da hab ich mich anscheinend etwas missverständlich ausgedrückt. Ich meinte damit, dass es mehrere Themengebiete gibt, zu denen die Artikel zugeordnet werden müssen. Ich glaube zu wissen, dass es da so eine "Gruppieren" funktion in XSLT 2.0 gibt.
Tach mindgap,
Das mit der Sammel-XML leuchtet mir ein. Ist es denn auch möglich, die URL´s der Artikel automatisch zu generieren? Soll bedeuten, das ich nicht jedes mal lust habe, die gesamte Sammel-XML von Hand neu zu erstellen.
Da im Posting auf XSLT 2.0 Bezug genommen wird, wäre die neue XSLT-Funktion unparsed-text() interessant. Schreibe die relevanten Dateinamen etwa mittels
dir *.xml /b > dateinamen.txt
in die angegebene Datei und lies diese dann mit unparsed-text() ein und splitte die einzelnen Namen über fn:tokenize() an den Zeilenumbrüchen und erzeuge damit die gesuchte XML-Struktur.
Man liest sich,
svg4you
Hallo,
Das mit der Sammel-XML leuchtet mir ein. Ist es denn auch möglich, die URL´s der Artikel automatisch zu generieren? Soll bedeuten, das ich nicht jedes mal lust habe, die gesamte Sammel-XML von Hand neu zu erstellen.
Natürlich geht das, aber wie du das mahst ist dir überlassen, ob mit der schon beschriebenen Methode, oder ob du das XML mit PHP/APS/etc. direkt als XML am Server generierst. Kommt ganz auf deine eigene Anforderungen und Möglichkeiten an.
- das diese in unterschiedlichen Sektionen des Newsletters publiziert werden müssen.
Den Satz verstehe ich nicht.
Sorry, da hab ich mich anscheinend etwas missverständlich ausgedrückt. Ich meinte damit, dass es mehrere Themengebiete gibt, zu denen die Artikel zugeordnet werden müssen. Ich glaube zu wissen, dass es da so eine "Gruppieren" funktion in XSLT 2.0 gibt.
Verstehe, gruppieren kannst du auch im XSLT 1, es kommt letzlich darauf an, wie und was dann letzlich in der Ausgabe stehen muss. Rein theoretisch kann man auch nicht viel mehr dazu sagen.
Grüße
Thomas