1. Przygotowanie do transformacji: Parsowany jest arkusz XSLT oraz wejściowy XML oraz budowane są ich drzewa. Uwzględniony jest fakt, że arkusz XSLT może się składać z wielu plików (instrukcje xsl:include i xsl:import). Z dokumentów usuwane są nadmiarowe białe znaki. Do drzewa XSLT dołączane są standardowe reguły.

2. Transformacja: Tworzony jest główny element drzewa wyjściowego (root node). Główna część: przetwarzane są elementy drzewa wejściowego, począwszy od elementu głównego. Zwracane jest drzewo wyjściowe, w formacie określonym przez xsl:output.

Każdy element drzewa wejściowego przetwarzany jest następująco: Znajdowany jest najlepiej pasujący szablon. Ze wszystkich szablonów pasujących do przetwarzanego elementu (każdy szablon nienazwany ma wzorzec - atrybut match) wybierany jest ten o najwyższym priorytecie (obliczonym na podstawie atrybutu priority, postaci wzorca oraz pozycji w dokumencie - elementy zaimportowane mają zawsze najniższy priorytet). Znaleziony szablon jest aplikowany. Elementy szablonu znajdujące się w przestrzeni nazw XSLT (zazwyczaj te z prefiksem xsl:) traktowane są jak instrukcje i odpowiednio interpretowane.