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.