Newsgroup: it.comp.www.php
Titolo: generare XML con PHP

Ciao,
come si può generare il codice XML con PHP? (devo rappresentare
dinamicamente dei dati provenienti da una database)
Ecco cosa ho provato:
<?xml version="1.0">
<MIOTAG><?php echo "unaStringa" ?></MIOTAG>
e l'output è:
echo miaStringa
Ho visto che c'è la possibilità di utilizzare DOM/XML, ma aruba non monta la
libreria adatta. Inoltre non sono interessato all'uso delle funzioni del
parser XML interno, poichè vorrei trasformare l'XML con XSLT che già
conosco.
grazie per ogni aiuto
Roberto

 <MIOTAG><?php echo "unaStringa" ?></MIOTAG>
Prova
<?php 
	header('Content-type: text/xml') ;
	print ('<?xml version="1.0" encoding="UTF-8"?>');
	print ("<MIOTAG>");
	print ("unaStringa");
	print ("</MIOTAG>");
?>
e salvalo come prova.php

 e salvalo come prova.php
il risultato non cambia
Roberto


Probabilmente tu guardi l'output del browser. Prova a guardare il sorgente.
S.

 S.
Cosa intendi?
evidentemente non mi sono spiegato bene. Sto scrivendo codice xml con PHP e
trasformandolo in HTML con XSLT, con il processore sablotron. E' chiaro che
mi aspetto un certo output nel browser
Ad ogni modo ecco i miei file 
www.bioveterinaria.it/xml.zip
Roberto

 Ad ogni modo ecco i miei file 
www.bioveterinaria.it/xml.zip
Le estensioni XSLT quando carichi il file cosi
$xml_string = join('', file("prova.php"));
lo legge fisicamente dal filesystem e non lo interpreta.
Crea una funzione che carica dal DB i dati e li trasforma in una 
stringa XML, poi utilizza DataXML2FileXSL per trasformalo
	function FileXML2FileXSL($XML, $XSL)
	{
		$xh = xslt_create();
		$result = xslt_process($xh, $XML,$XSL);
		xslt_free($xh);
		return $this->removeXMLHeader($result);
	}
 
	function DataXML2FileXSL($XML, $XSL)
	{
		$arguments = array(
			 '/_xml' => $XML,
			 '/_xsl' => implode("",file($XSL)));
		$xh = xslt_create();
		$result = xslt_process($xh, 'arg:/_xml', 'arg:/_xsl', NULL, 
$arguments); 
		xslt_free($xh);
		return $this->removeXMLHeader($result);
	}
 
	function DataXML2DataXSL($XML, $XSL)
	{
		$arguments = array(
			 '/_xml' => $XML,
			 '/_xsl' => $XSL);
		$xh = xslt_create();
		$result = xslt_process($xh, 'arg:/_xml', 'arg:/_xsl', NULL, 
$arguments); 
		xslt_free($xh);
		return $this->removeXMLHeader($result);
	}
 
	function FileXML2DataXSL($XML, $XSL)
	{
		$arguments = array(
			 '/_xml' => implode("",file($XML)),
			 '/_xsl' => $XSL);
		$xh = xslt_create();
		$result = xslt_process($xh, 'arg:/_xml', 'arg:/_xsl', NULL, 
$arguments); 
		xslt_free($xh);
		return $this->removeXMLHeader($result);
	}

 lo legge fisicamente dal filesystem e non lo interpreta.
dovrebbe interpretarli male anche se metto il codice XML puro in un file
prova.xml, mentre invece in questo caso tutto funziona bene è l'output è
generato correttamente.
ciao
Roberto

 l'output h generato correttamente.
Ora ho capito:
l'errore sta in come richiedi il file php:
$xml_string = join('', file("prova.php"));
// e sbagliato, cosi la funzione file lo carica dal filesystem 
// e non via http
// prova cosi:
$xml_string = join('', file("
http://localhost/prova.php
"));
// altrimenti il webserver non viene interrogato per l'interpretazione 
// del file php.

 ha scritto nel messaggio
news:D5cta.90917$DT4.2...@twister1.libero.it...
