Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    Generare un'output in xml?

    Buon giorno, vorrei sapere come fare per generare un file data.xml tramite php.
    In pratica, eseguo una query i risultati devo essere contenuti in un file data.xml.
    Ho visto questo esempio ma non mi funziona:

    codice:
    //data.xml
    <?xml version="1.0" encoding="iso-8859-1"?>
    <clienti>
    	<cliente>
    		<dati_anagrafici>
    			<ragione_sociale>ABC S.p.a.</ragione_sociale>
    			<partita_iva>123456789011</partita_iva>
    		</dati_anagrafici>
    		<dati_geografici>
    			<indirizzo>via Torino, 14</indirizzo>
    			<citta>Milano</citta>
    		</dati_geografici>
    		<contatti>
    			<telefono>02123456879</telefono>
    			<url>http://www.abc.it</url>
    			<email>info@abc.it</email>
    		</contatti>
    	</cliente>
    <cliente>
    codice:
    //in data.php
    <?php
    		function start_element($parser, $element_name, $element_attrs) {
    			switch ($element_name) {
    				case 'CLIENTI':
    					echo '<h1>Elenco Clienti</h1><ul>';
    				break;
    				case 'RAGIONE_SOCIALE':
    					echo '[*]';
    				break;
    				case 'PARTITA_IVA':
    					echo '(';
    				break;
    			}
    		}
    		function end_element($parser, $element_name) {
    			switch ($element_name) {
    				case 'CLIENTI':
    					echo '[/list]';
    				break;
    				case 'RAGIONE_SOCIALE':
    					echo '';
    				break;
    				case 'PARTITA_IVA':
    					echo ')';
    				break;
    			}
    		}
    		function character_data($parser, $data) {
    			echo htmlentities($data);
    		}
    		$parser = xml_parser_create();
    		
    		xml_set_element_handler($parser, 'start_element', 'end_element');
    		xml_set_character_data_handler($parser, 'character_data');
    		$fp = fopen('data1.xml', 'r') or die ("Cannot open keyword-data.xml!");
    		while ($data = fread($fp, 4096)) {
    			xml_parse($parser, $data, feof($fp))or die(sprintf('XML ERROR: %s at line %d', xml_error_string(xml_get_error_code($parser)), xml_get_current_line_number($parser)));
    		}
    		xml_parser_free($parser);
    ?>
    Come posso fare?
    Grazie mille

  2. #2
    allora ho trovato questo script, e lo posto magari può servire a qualcuno.
    codice:
    //prima di eseguire lo script, create il file results.xml, vuoto ;)
    <?php
    if ($num != 0) {
    	$file= fopen("results.xml", "w");
    	$_xml ="<?xml version=\"1.0\" encoding=\"UTF-8\" ? >\r\n";
    	$_xml .="<site>\r\n";
    		while ($row = mysql_fetch_array($result)) {
    			if ($row["pageTitle"]) {
    				$_xml .="\t< page title=\"" . $row["pageTitle"] . "\">\r\n";
    				$_xml .="\t\t<file>" . $row["pageLink"] . "</file>\r\n";$_xml .="\t< /page>\r\n"; 
    			} 
    			else {
    				$_xml .="\t<page title=\"Nothing Returned\">\r\n";$_xml .="\t\t<file>none</file>\r\n";
    				$_xml .="\t</page>\r\n"; 
    			} 
    		}
    		$_xml .="</site>";
    		fwrite($file, $_xml);
    		fclose($file);
    		echo "XML has been written.  <a href=\"results.xml\">View the XML.</a>";
    } 
    else {
    	echo "No Records found";
    } 
     
    ?>
    Perfetto...alla prox

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.