xslt template engine for laravel

3.0.0 2017-12-31 00:08 UTC

This package is auto-updated.

Last update: 2024-03-25 05:54:45 UTC


Latest Stable Version Total Downloads Latest Unstable Version License

XSLT template engine for laravel


  1. Install using composer in your laravel project
composer require krowinski/laravel-xslt
  1. Add this line to app.php at the end of 'providers' array (in file config/app.php)
  1. Create welcome.xsl in resources/views
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="" xmlns:exslt="" xmlns:str="" xmlns:php="" exclude-result-prefixes="exslt str php">

    <xsl:output encoding="UTF-8" method="xml" omit-xml-declaration="yes" indent="yes"
                doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
                doctype-system="" cdata-section-elements="script"/>

    <xsl:template match="/">


            <link href="" rel="stylesheet" type="text/css"/>

                html, body {
                height: 100%;

                body {
                margin: 0;
                padding: 0;
                width: 100%;
                display: table;
                font-weight: 100;
                font-family: 'Lato';

                .container {
                text-align: center;
                display: table-cell;
                vertical-align: middle;

                .content {
                text-align: center;
                display: inline-block;

                .title {
                font-size: 96px;

            <div class="container">
                <div class="content">
                    <div class="title">Laravel 5 XSLT engine template</div>

  1. Add data to xml using simple xml functions
 * Show the application welcome screen to the user.
 * @return Response
public function index()
	// adds to main xml /App attributte name template with value  = hello
	\View::addAttribute('name_template ', 'hello');
	// create child template to /App with value hello and add aaa and zzz atribute to template.
	\View::addChild('template', 'hello', false)->addAttribute('aaaa', 'zzz');
	// creates parent example and adds childs foo and bar to it 
	\View::addArrayToXmlByChild(['foo', 'bar'], 'example', false); 
	// add to parent App child bar and zzz
	\View::addArrayToXml(['bar', 'zzz'], false);

	return view('welcome');

Add xml to debugBar (

Add to EventServiceProvider.php

use Krowinski\LaravelXSLT\Engines\XSLTEngine;

and to protected $listen array


create file Listeners\XSLTDebugBar.php

php artisan make:listener XSLTDebugBar --event XSLTEngineEvent

event content


namespace App\Listeners;

use DebugBar\DataCollector\MessagesCollector;
use DebugBar\DebugBar;
use Illuminate\Support\Facades\App;
use Krowinski\LaravelXSLT\Events\XSLTEngineEvent;

 * Class XSLTDebugBar
 * @package App\Listeners
class XSLTDebugBar
     * @param XSLTEngineEvent $event
    public function handle(XSLTEngineEvent $event)
        $dom = new \DOMDocument;
        $dom->preserveWhiteSpace = false;
        $dom->formatOutput = true;
        $xmlString = $dom->saveXML();

        /** @var DebugBar $debugBar */
        $debugBar = App::make('debugbar');
        if (!$debugBar->hasCollector('XML')) {
            $debugBar->addCollector(new MessagesCollector('XML'));
        /** @var MessagesCollector $collector */
        $collector = $debugBar->getCollector('XML');
        $collector->addMessage($xmlString, 'info', false);