Antworten auf deine Fragen:
Neues Thema erstellen

Antworten zum Thema „XSL-Transformation: "kleines Problem"“

eFoX

Reiche Zahnarztgattin

Guten Morgen!

Ich sitze gerade an einer XSL-Transformation und habe folgendes XML Snippet vor mir. Die XML-Datei selbst darf/kann nicht verändert werden!

Code:
<kurztitel>myKurztitel1-</kurztitel><abk>myAbk1</abk>

Nun möchte ich das ganze per XSL in eine Überschrift transformieren! Beide Elemente sind übrigends laut DTD optional. Später muss es dann als HTML so aussehen. (Das ist meine Vorgabe)

Code:
<h3>myKurztitel1-myAbk1</h3>

Meine Ideen, bisher erfolglos:
1) kurztitel matchen
2) h3 öffnen, xsl applyen
3a) wenn als following-sibling abk besteht, abk matchen, xsl applyen und h3 schließen
3b) wenn kein abk besteht h3 von kurztitel schließen

(und dann fehlt aber der Fall, falls nur abk besteht aber kein kurztitel)

EDIT:
* Code nachreich:
Code:
<xsl:template match="kurztitel">
	<h3><xsl:apply-templates />
	
	<xsl:choose>
		<xsl:when test="element-avaiable('abk')">
			<xsl:template match="abk"> <xsl:apply-templates /> [COLOR="SeaGreen"][SIZE="1"]<!-- <xsl:apply-templates select="abk" /> -->[/SIZE][/COLOR] 
</h3>
		</xsl:when>
	
		<xsl:otherwise>
			</h3>
		</xsl:otherwise>
	</xsl:choose>
	
</xsl:template>

funktioniert nicht, parser motzt 4x: "opening and ending tag mismatch"
 
Zuletzt bearbeitet:

blackout

Schaf im Wolfspelz

AW: XSL-Transformation: "kleines Problem"

XSLT ist selbst XML-Sprache. In deinem Code steht Suppe, du öffnest einen h3-Tag, und schließt ihn (noch dazu in anderen Verschachtelungsebenen) zwei mal. In deinem Fall reicht es aus, das h3-Element nach dem /xsl:choose zu schließen (und die anderen beiden /h3 zu löschen).
(Da dir außerdem der xsl:choose-Tag leer übrig bleibt kannst du ihn löschen, und das xsl:when durch ein xsl:if ersetzen.)
 

eFoX

Reiche Zahnarztgattin

AW: XSL-Transformation: "kleines Problem"

XSLT ist selbst XML-Sprache.
weis ich XML ist die metasprache, falls ich mich falsch ausgedrückt habe: passiert

In deinem Code steht Suppe, du öffnest einen h3-Tag, und schließt ihn (noch dazu in anderen Verschachtelungsebenen) zwei mal. In deinem Fall reicht es aus, das h3-Element nach dem /xsl:choose zu schließen (und die anderen beiden /h3 zu löschen).
hab ich so gar nicht bedacht, stimmt.

(Da dir außerdem der xsl:choose-Tag leer übrig bleibt kannst du ihn löschen, und das xsl:when durch ein xsl:if ersetzen.)
logisch!

btw. habs anders hinbekommen, war einfach! geht ohne choose / when/otherwise oder gar if!
im kurztitel-match noch das abk selecten (follow-sibling) und in einem mode durchlaufen. das normale abk kann dann unterdrückt werden bei der ausgabe
 
Zuletzt bearbeitet:

blackout

Schaf im Wolfspelz

AW: XSL-Transformation: "kleines Problem"

Das mit dem XSL ist XML meinte ich mehr bezogen auf die Tag-Reihenfolge. Was eine Metasprache ist weiß ich nicht, und das würde ich dir auch nur ankreiden wenn's mit dem Problem zu tun hat.

(Ist gelogen. Wenn ich jemanden anmaulen will würde ich auch sowas dafür benutzen) ;)
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
175.189
Beiträge
2.582.077
Mitglieder
67.259
Neuestes Mitglied
SaschMasch1312
Oben