Main Menu




browser lang:en

Users Area

Client Login

today cache size is:0

 

 


Commenti

RE:trasformare in .gz by boris
10/03/2011 by marco

22/02/2011 by bono
RE:trasformare in .gz
22/02/2011 by boris
trasformare in .gz
21/02/2011 by bono
RE:Ma a che serve sta roba???
05/02/2011 by dwarf79
Ma a che serve sta roba???
28/01/2011 by Luca
Rapidshare hotfile fileserver download
08/01/2011 by Rapidshare hotfile fileserver download
re:xml
03/12/2010 by david68

Leggi tutto »


RAPIDQ

Rapid-Q:The lost files
My old library where i have collected all the rapidq scripts and italian help


Today my pagerank is: Free Page Rank Tool
Upbooking - free booking engine

XSLT - Passare un parametro dentro un file XSL con PHP

Lavorando con integrazioni XSLT e PHP, la seconda necessità che uno sviluppatore web incontra, subito dopo l'integrazione XML-XSL, è come passare una variabile o un dato all'interno del file XSL.
Perchè questa necessità? Beh, ad esempio pensiamo ad un esempio dove vogliamo fare una Query (in questo caso XQuery) dinamica che vada a prendere un determinato Record (in questo caso Elemento dell'Albero XML), per intenderci il classico passaggio (GET, POST o quelchessia) applicato però all'XSLT.

Esempio Albero XML: location.xml


<CityLocations>
  <CityLocation>
    <CityID>1</CityID>
    <LocationName>New York</LocationName>
  </CityLocation>
    <CityLocation>
    <CityID>2</CityID>
    <LocationName>Chicago</LocationName>
  </CityLocation>
</CityLocations>

Adesso creiamo il file XSL che oltre a eseguire la XQuery riceverà il parametro CityID
Esempio:location.xsl.php
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
    <table width="100%">
      <tr>
		<th>CityId</th>
        <th>LocationName</th>
      </tr>
      <xsl:for-each select="CityLocations/CityLocation[CityID=$CityID]">
      <tr>
        <td><xsl:value-of select="CityID"/></td>
        <td><xsl:value-of select="LocationName"/></td>
      </tr>
      </xsl:for-each>
    </table>
</xsl:template>
</xsl:stylesheet>

Ed infine andiamo a creare il file PHP che integra XML e XSL e inietta il parametro all'interno dell'XSL
Esempio:location.php

// ------------Applica un file XSL a un XML In PHP 5  --------------------
$cityLocations = "1";
// Carica il file dati

$xml = new DOMDocument("1.0");
$xml->load($_SERVER['DOCUMENT_ROOT'].'/xml/location.xml');

// Carica il file stile
$xsl = new DOMDocument("1.0");
$xsl->load($_SERVER['DOCUMENT_ROOT'].'/xslt/location.xsl.php');
// Crea un processore XSLT
$proc = new XSLTProcessor;
// Setta un parametro da trasformare nel file XSL  
$proc->setParameter( '', 'CityID', $cityLocations);   
$proc->importStyleSheet($xsl); // Importa il file xslt
$dom=$proc->transformToDoc($xml);    // Output risultato a documento DOM
$dom->formatOutput=true;
echo  $dom->saveXML($dom->documentElement);  // Invia il risultato a un browser 


Il risultato finale sarà : CityID:1

LocationName:New York

Naturalmente visto l'esempio superiore potremo integrare il tutto per operazioni variegate e più complesse.
Alla fine come sempre, buon divertimento!!


Commenti

re:xml by david68

03/12/2010 
lo script che hai inserito varia abbastanza dallo script del post, infatti tu fai direttamente la query senza caricarla in un xslt;

Nel tuo caso io userei una chiamata simplexml che é molto piú facile


xml by gabriele.bassi@yahoo.it

02/12/2010 
Ciao ho provato a usare parte del tuo script per recuperare un prodotto da un catalogo xml in base alla temperatura minima e massima ricevuta come parametro da un form html.

file.xml
<catalogo_prodotti>
<prodotto tmax='100' tmin='-20'>
<nome>prodotto1</nome></prodotto>

<catalogo_prodotti>
<prodotto tmax='100' tmin='-80'>
<nome>prodotto2</nome></prodotto>
</catalogo_prodotti>

ricerca.php

<?php
$tmin='-80';
$tmax='100';
$dom = new DomDocument();
$dom->load("prodotti.xml");
$xpath = new DomXPath($dom);
$arts = $xpath->query("/catalogo_prodotti/prodotto[@tmax="'.$tmax'"][@tmin="'.$tmin'"]");

foreach ($arts as $art)
{
print $art->nodeValue."";
}
?>
Così lo script non funziona genera una pagina bianca e non segnala nessun errore, mentre modificando la query in questo modo:

<?php
$tmin='-80';
$tmax='100';
$dom = new DomDocument();
$dom->load("prodotti.xml");
$xpath = new DomXPath($dom);
$arts = $xpath->query("/catalogo_prodotti/prodotto[@tmax='100'][@tmin='-80']");

foreach ($arts as $art)
{
print $art->nodeValue."";
}
?>
Definiendo direttamente i parametri di tmax e tmin funziona senza problemi i problemi li ha quando cerco di recuperare i dati da un form


Inserisci un commento

Titolo
Messaggio
Nome Utente
e-mail (se vuoi ricevere le risposte a questo post anche via mail)

Users

Videos


Scripts & Tutorials

Linux - I comandi principali

07/11/2010 

Per i piú smemorati, una lista di comandi principali usati con linux cd : cambia la directory corrente. ls : mostra il…

in:Scripts e tutorials (0 commenti)

Search Engine Optimization - 130 parametri usati da google per valutare il tuo sito

26/08/2010 

Con l'avvento di caffeine molti webmaster si sono trovati a dover rivedere tutte le strategie SEO per i…

in:Scripts e tutorials (0 commenti)

Inserisci Google BUZZ nel tuo sito con Google Buzz Widget Jquery Plugin

15/02/2010 

Questo è un widget di jQuery per il nuovo social network di Google-Buzz-che è possibile incorporare ovunque per…

in:Scripts e tutorials (0 commenti)

Javascript - Codifica/decodifica di password nei file ste di Dreamweaver

17/01/2010 

Questo é un pratico codificatore/decodificatore/decriptatore (chiamatelo come volete) di password inserite nei file di configurazione .ste su dreamweaver function…

in:Scripts e tutorials (0 commenti)

PHP - Uno script per calcolare il PageRank di Google

10/01/2010 

Il PageRank è un algoritmo che usa Google per valutare la credibilità e l'autorevolezza delle pagine Web. Il…

in:Scripts e tutorials (8 commenti)

PHP - Download file con limite di velocita'

20/10/2009 

Con questo script possiamo limitare il download di un file dal nostro server php; il limite di velocitá…

in:Scripts e tutorials (0 commenti)

PHP - Salvare immagini remote sul proprio server usando CURL

12/10/2009 

Alcuni host hanno disabilitati nei settaggi del.ini i comandi allow_url_fopen. Questo significa anche non poter usare i vantaggi…

in:Scripts e tutorials (2 commenti)

PHP - Short Url: due funzioni per creare link brevi

06/10/2009 

Gli SHORT URLS fanno ormai parte di quelle cose di internet che ci suonono terribilmente familiari; per capirci…

in:Scripts e tutorials (0 commenti)

Leggi tutto »


Tag Clouds


Linux comandi principaliSearch Engine Optimization parametri usati google valutare sitoInserisci Google BUZZ sito Google Buzz Widget Jquery PluginJavascript Codificadecodifica password file DreamweaverPHP script calcolare PageRank GooglePHP Download file limite velocitaPHP


Add to Technorati Favorites