Thomas J.S.: XSLT zusammen mit XML-Schema ?

Beitrag lesen

Hallo,

vielen Dank für die sehr hilfreiche Antwort!
Die Möglichkeit mit dem Prefix im XML-Dokument fällt leider weg, bleibt also nur noch die Änderung des XSLT-Codes. Hast du vielleicht noch ne Idee wie man das mit dem <xsl:apply-templates /> hinbekommen könnte? Ich brauch das in dieser Reihenfolge:

<body>
<xsl:apply-templates select="*[name()='Head']"/>
<xsl:apply-templates select="*[name()='BOM']"/>
<xsl:apply-templates select="*[name()='Head']" mode="toc"/>
</body>

wie wähle ich aber diese Templates aus? So geht das nicht.

Du muss den Pfad anpassen, wie würdest du es "normal" machen?
Basierend auf mein vorheriges XSL:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
    <xsl:template match="/">
        <html>
            <head>
                <title>Untitled</title>
            </head>
            <body>
                <xsl:apply-templates select="./*[name() = 'Article']" />
            </body>
        </html>
    </xsl:template>
    <xsl:template match="*[name() = 'Article']">
        <div>
            <xsl:apply-templates select="./*[name() = 'data']" />
        </div>
    </xsl:template>
    <xsl:template match="*[name() = 'data']">
        <h1><xsl:value-of select="."/></h1>
    </xsl:template>
</xsl:stylesheet>

Wenn der Pfad bei dir anderes ist, muss du das leider entsprechend angeben
<xsl:apply-templates select="*[name() = 'Article']/*[name() = 'ELEMENT]" />

<xsl:apply-templates select="*[name() = 'Article']/*[name() = 'ELEMENT][@attribut = 'WERT']" />  etc.

Ich muss doch dann bei jedem einzelnen Element mit
<h1><xsl:value-of select="*[name()='ELEMENT']"/></h1>
den entsprechenden Wert rausholen oder???

Ja.

Irgendwie ziemlich scheisse dass des nicht gscheit unterstützt wird!

Leider, und XSLT 2 ist noch nicht wirklich zum produktiven Einsatzt geeignet.

Grüße
Thomas

PS: eigentlich müsstest du statt name() local-name() verwenden, aber in deinem Fall ist es gleich.

--
Surftip: kennen Sie schon Pipolino's Clowntheater?
http://www.clowntheater-pipolino.net/