Dieser Abschnitt in der Spezifikation auf XSLT Template Rules ist ziemlich geradlinig und gibt Beispiele.
Denken Sie nicht daran, dass XSLT auf XML wirkt.
Denken Sie an Ihr XML, das durch XSLT fließt.
XSLT beginnt an der Wurzel-Vorlage, mit einem imaginären Cursor auf der Stammebene Ihres Dokument Baum:
<xsl:template match="/">
...stuff in here...
</xsl:template>
In der Mitte, XSLT-Anweisungen ausgeführt wird gestartet. Wenn Sie eine <xsl:apply-templates select="...something..."/>
haben, dann findet sie alles an dem Cursor, der mit dem XPath in select = übereinstimmt, und sucht nach Vorlagen mit einer <xsl:template match="...something...">
. Der erste, den es findet, wird gemäß den Vorrangregeln ausgeführt.
Während der Ausführung dieser neuen Vorlage gelten die gleichen Dinge, außer dass der Kontext jetzt der übereinstimmende Knoten ist.
Das sind die Grundlagen. So zum Beispiel, wenn Sie das XSLT-Programm haben, dann egal, was die Eingabe, werden Sie <hello world="!"/>
als Ausgabe erhalten:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<hello world="!"/>
</xsl:template>
</xsl:stylesheet>
Aber wenn Sie Eingabe wie folgt aus:
<people>
<name>Paige</name>
<name>Hayley</name>
<name>Hamlet</name>
</people>
und Verwenden Sie dies als eine Transformation:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<table>
<xsl:apply-templates select="/people/name[substring(., 1, 1) = 'H']"/>
</table>
</body>
</html>
</xsl:template>
<xsl:template match="name">
<tr>
<td>
<xsl:value-of select="."/>
</td>
</tr>
</xsl:template>
</xsl:stylesheet>
Es wird zunächst eine HTML-Datei einrichten. Es findet dann alle 'name'-Elemente unter den' people'-Elementen unter dem root-Element, und wenn sie mit dem Buchstaben 'H' beginnen, wird nach einer Vorlage gesucht, die mit 'name' übereinstimmt. Da wir eins haben, wird es eine Tabellenzeile mit dem Namen schreiben. Es wird diese Regel zweimal ausführen, und dann werden die HTML-Elemente geschlossen und das Skript wird beendet.
Hilft das?
das ist nicht wirklich eine Antwort ist, aber ich habe das Lernen XSLT gefunden alle über die Praxis ist. Hier finden Sie eine gute XSLT IDE wie Xselerator und einfach weiter versuchen Zeug. –
Ich denke, das Problem m ist nicht XSLT, es ist * die Bücher über XSLT *. – Tomalak
Ich hoffe, dass ich mit meinem Pluralsight-Training ** "XSLT 2.0 and 1.0 Foundations" ** ein tiefgehendes und systematisches Verständnis von XSLT und XPath erhalte. http://pluralsight.com/training/Courses/TableOfContents/xslt-foundations-part1 –