[GastForen Programme Print/Bildbearbeitung Adobe InDesign XML Elementreihenfolge mit XSLT tauschen

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Print/Bildbearbeitung - Photos, Layout, Design
Themen
Beiträge
Moderatoren
Letzter Beitrag

XML Elementreihenfolge mit XSLT tauschen

RK01
Beiträge gesamt: 20

11. Apr 2011, 09:29
Beitrag # 1 von 5
Bewertung:
(6040 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Forum,

zur Erstellung eines Veranstaltungskalenders wird eine XML-Datei mit folgender struktur in InDesign CS4 importiert.

<veranstaltung>
<datum></datum>
<titel></titel>
<ort></ort>
<zeit></zeit>
<text></text>
<veranstalter></veranstalter>
</veranstaltung>

die nächsten Veranstaltungen folgen nach dem gleichen Schema also wieder mit <veranstaltung> als einleitender Tag.

da sich nun das Layout des Veranstaltungskalenders geändert hat, muß die Reihenfolge der Elemente <zeit>, <text> und <ort> wie folgt geändert werden.

<veranstaltung>
<datum></datum>
<titel></titel>
<zeit></zeit>
<text></text>
<ort></ort>
<veranstalter></veranstalter>
</veranstaltung>

Ich habe mich dann einmal mit XSL Stylesheets beshäftigt, die sich ja beim Import der XML-Datei auf diese anwenden lassen - allerdings nur mit geringem Erfolg.

Daher meine Frage, ob jemand Erfahrung mit solchen Transformationen hat und mir auf die Sprünge helfen kann.

Vorab vielen Dank

Beste Grüße

Rouven
X

XML Elementreihenfolge mit XSLT tauschen

Dude
Beiträge gesamt: 63

11. Apr 2011, 18:00
Beitrag # 2 von 5
Beitrag ID: #468900
Bewertung:
(6002 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Probier mal folgendes Stylesheet:
Code
<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
exclude-result-prefixes="#all"
version="2.0">

<!-- ========================================================================================================================= -->
<!-- @@@___ output settings ___@@@ -->
<!-- ========================================================================================================================= -->
<xsl:output encoding="UTF-8" method="xml" indent="yes"/>
<xsl:strip-space elements="*"/>

<!-- ========================================================================================================================= -->
<!-- @@@___default templates ___@@@ -->
<!-- ========================================================================================================================= -->
<xsl:template match="element()" mode="#all">
<xsl:copy copy-namespaces="no">
<xsl:apply-templates select="@* | node()" mode="#current"/>
</xsl:copy>
</xsl:template>

<xsl:template match="comment() | processing-instruction()" mode="#all"/>

<xsl:template match="attribute() | text() | comment() | processing-instruction()" mode="#all">
<xsl:copy copy-namespaces="no"/>
</xsl:template>

<!-- ========================================================================================================================= -->
<!-- @@@___ Umsortierung ___@@@ -->
<!-- ========================================================================================================================= -->
<xsl:template match="veranstaltung">
<xsl:copy-of select="@*"/>
<xsl:apply-templates select="datum"/>
<xsl:apply-templates select="titel"/>
<xsl:apply-templates select="zeit"/>
<xsl:apply-templates select="text"/>
<xsl:apply-templates select="ort"/>
<xsl:apply-templates select="veranstalter"/>
</xsl:template>

</xsl:stylesheet>



als Antwort auf: [#468843]

XML Elementreihenfolge mit XSLT tauschen

RK01
Beiträge gesamt: 20

11. Apr 2011, 21:32
Beitrag # 3 von 5
Beitrag ID: #468912
Bewertung:
(5978 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Dude,

vielen Dank für Deinen Beitrag. Ich habe das Styleshheet getestet, bekomme aber vom InDesign-XSLT Prozessor die Meldung "#all ist kein gültiger QName".

Beste Grüße

Rouven


als Antwort auf: [#468900]

XML Elementreihenfolge mit XSLT tauschen

RK01
Beiträge gesamt: 20

11. Apr 2011, 23:17
Beitrag # 4 von 5
Beitrag ID: #468922
Bewertung:
(5961 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Dude,

inzwischen habe ich mir eine Trialversion von XMLSpy heruntergeladen.

Hier gab es keinerlei Probleme mit der Transformation.

also nochmals vielen Dank

Beste Grüße

Rouven


als Antwort auf: [#468900]

XML Elementreihenfolge mit XSLT tauschen

Dude
Beiträge gesamt: 63

12. Apr 2011, 11:35
Beitrag # 5 von 5
Beitrag ID: #468953
Bewertung:
(5921 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Klappt es mit InDesign direkt, wenn du jeweils das Attribute mode , also den Text mode="#all" überall löscht?


als Antwort auf: [#468922]
X