Un esempio un po' del minga... dato un foglio di stile con vari templates trasformo l'xml
XSLT: styles.xsl
Codice PHP:
<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:apply-templates />
</xsl:template>
<xsl:template match="form">
<form id="{@id}" name="{@name}" action="{@action}" method="{@method}" enctype="{@enctype}">
<xsl:apply-templates />
</form>
</xsl:template>
<xsl:template match="items">
<ul class="{@class}">
<xsl:for-each select="item">
[*]<xsl:apply-templates />
</xsl:for-each>
[/list]
</xsl:template>
<xsl:template match="selectXml">
<select name="{@name}" id="{@id}">
<xsl:for-each select="option">
<option value="{@value}"><xsl:value-of select="text()" /></option>
</xsl:for-each>
</select>
</xsl:template>
<xsl:template match="link">
[url="{@href}"]<xsl:apply-templates />[/url]
</xsl:template>
<xsl:template match="image">
[img]{@src}[/img]
</xsl:template>
<xsl:template match="list">
<table class="{@class}" cellpadding="4px" cellspacing="3" border="1" width="100%">
<xsl:for-each select="row">
<tr>
<xsl:apply-templates select="field" />
</tr>
</xsl:for-each>
</table>
</xsl:template>
<xsl:template match="field">
<td><xsl:apply-templates /></td>
</xsl:template>
<xsl:template match="labelXml">
<label for="{@for}"><xsl:value-of select="@for" />:</label>
</xsl:template>
<xsl:template match="inputText">
<input type="text" name="{@name}" value="{@value}" size="{@size}" />
</xsl:template>
<xsl:template match="inputHidden">
<input type="hidden" name="{@name}" value="{@value}" />
</xsl:template>
<xsl:template match="textArea">
<textarea name="{@name}" rows="{@rows}" cols="{@cols}"><xsl:value-of select="@value" /></textarea>
</xsl:template>
</xsl:stylesheet>
XML: form.xml
Codice PHP:
<form id="addMessage" name="" action="" method="POST" enctype="">
<labelXml for="Subject" />
<inputText name="subject" value="subject.." size="30" />
<labelXml for="Message" />
<textArea name="message" rows="5" cols="60" value="message.." />
</form>
PHP: es. www.tuosito.it/index.php?c=form
Codice PHP:
define('DIR_PATH', dirname(__FILE__));
require_once( 'class/transformer.class.php' );
try {
// ricavo la pagina da trasformare tramite GET
$xmlSource = 'xml/' . $_GET['c'] . '.xml';
$t = new transformer( $xmlSource, 'xsl/styles.xsl' );
echo $t->toHtml();
}
catch ( Exception $e ) {
$msg = 'Error: ' . $e->getMessage() . '
';
$traceErrors = $e->getTrace();
$msg .= 'on: ' . $traceErrors[0]['file'] . '
';
$msg .= 'line: ' . $traceErrors[0]['line'] . '
';
echo $msg;
}
un esempiucolo di utilizzo.. se hai domande so qua