Skip to content

Instantly share code, notes, and snippets.

@phpfiddle
Created March 26, 2013 22:42
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save phpfiddle/5249991 to your computer and use it in GitHub Desktop.
Save phpfiddle/5249991 to your computer and use it in GitHub Desktop.
[ Posted by Fiddler ] XSLT transformation Demo.
<?php
/* XSLT transformations */
$owner = "PhpFiddle";
$collection_xsl = <<<DOC
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:param name="owner" select="'Nicolas Eliaszewicz'"/>
<xsl:output method="html" encoding="iso-8859-1" indent="no"/>
<xsl:template match="collection">
Hey! Welcome to <xsl:value-of select="$owner"/>'s sweet CD collection!
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="cd">
<h1><xsl:value-of select="title"/></h1>
<h2>by <xsl:value-of select="artist"/> - <xsl:value-of select="year"/></h2>
<hr />
</xsl:template>
</xsl:stylesheet>
DOC;
$collection_xml = <<<DOC
<collection>
<cd>
<title>Fight for your mind</title>
<artist>Ben Harper</artist>
<year>1995</year>
</cd>
<cd>
<title>Electric Ladyland</title>
<artist>Jimi Hendrix</artist>
<year>1997</year>
</cd>
</collection>
DOC;
$xslDoc = new DOMDocument();
$xslDoc->loadXML($collection_xsl);
$xmlDoc = new DOMDocument();
$xmlDoc->loadXML($collection_xml);
$proc = new XSLTProcessor();
$proc->importStylesheet($xslDoc);
echo $proc->transformToXML($xmlDoc);
?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment