Kann ich xslt mit einem anderen xslt verbinden?

8

Grundsätzlich möchte ich ein xslt haben, um meine 'Basis' xslt zu werden und dieses in untergeordnete xslt-Dateien zu verknüpfen.

Ist das möglich?

Ziel ist es, die Code-Duplizierung zu reduzieren.

Wir werden viele untergeordnete xslt-Dateien für die verschiedenen Kunden haben, alle mit eigener Formatierung und zusätzlichem Text usw. und nicht den Basiscode für jeden Client xslt wiederholen wollen.

Ich weiß, dass wir basierend auf der Art des Kunden formatieren können, aber dies wird die xslt überladen machen. Wäre im Idealfall genau wie kundenbezogener Code für jeden Kunden.

Ist das nicht die Art, xslt zu machen? Ich bin neu bei xslt!

    
c00ke 10.02.2009, 16:15
quelle

5 Antworten

14
%Vor%

Der href-Pfad ist relativ zur aktuellen xsl-Datei. <xsl:import/> documentation .

Denken Sie daran, dass Sie Ihre Importlinien als erstes untergeordnetes Element von <xsl:stylesheet> oder <xsl:transform> schreiben müssen. Sie können nicht überall in Ihren Dateien erscheinen.

    
matpie 10.02.2009, 16:19
quelle
10

Wie alle anderen Antworten angegeben haben, gibt es zwei XSLT-Anweisungen:

<xsl:import>

und

<xsl:include>

die genau dafür entwickelt wurden, diese Fähigkeit zu bieten.

Es könnte für Sie interessant sein, dass es vollständige Bibliotheken mit Vorlagen und Funktionen gibt, die andere Stylesheets der Bibliothek intern importieren. Die Stylesheets der Bibliothek sollen in die XSLT-Stylesheets des Benutzers importiert werden.

Sehen Sie sich zum Beispiel die FXSL-Bibliothek für die funktionale Programmierung in XSLT an.

>     
Dimitre Novatchev 10.02.2009 17:35
quelle
4

Alle anderen Antworten geben Ihnen genügend Informationen,
Ich möchte hier noch eine wichtige Sache erwähnen. Sie können sogar die Parameter (in beiden Fällen) zwischen den beiden übergeben (aufrufende und aufgerufene Datei, wenn sie irgendwelche Daten teilen müssen) xslt Dateien ..
Diese Funktion spielt wichtige Rolle in / über XSLT Version 1.0, möglicherweise benötigen Sie es in der Zukunft ..
:)

    
InfantPro'Aravind' 25.11.2009 05:54
quelle
3

Ja, Sie können - Sie können include und import andere XSLTs.

Dies ist ein guter Ort, um etwas über import zu lernen, nach dem Sie speziell suchen. include ist anders, aber wissenswert.

    
Andrew Hare 10.02.2009 16:19
quelle
0

Ja, Sie können das Tag verwenden, um ein anderes XSLT einzufügen:

%Vor%

Es gibt ein paar gotchas! Also sei vorsichtig!

Die "Eltern" XSLT wird die enthaltene XSLT zwischenspeichern. Wenn Sie also eine Änderung an der verschachtelten / eingeschlossenen XSLT vornehmen, wird diese in der XSLT-Stammtransformation nicht sofort angezeigt. Ich denke, das könnte mit der Verwendung von XslCompiledTransform zu tun haben - aber nicht 100%. Wie auch immer, wenn Sie das übergeordnete XSLT ändern, wird der Cache aktualisiert. (Dies war ein sehr nerviges Problem bei einigen Projekten)

Zweitens werden Sie wahrscheinlich auf Probleme mit dem $ currentPage-Parameter stoßen. Es kann nur einmal im gesamten XSLT-Stylesheet deklariert werden - das schließt "includes" ein !!! Sei also vorsichtig, wo du auf das Element Bezug nimmst! Referenz von hier

    
madhu 09.11.2015 14:07
quelle

Tags und Links