Posts Tagged ‘cinese’

31 agosto 2010 @ 15:00
Carlo

Gestire file xml con PHP

Con questa Classe php puoi visualizzare un file xml in un form di dati, modificare i valori e risalvare il file xml;
Molto utile nel caso di utilizzo di più lingue… funziona anche con il CINESE!!!
Utilizzo la classe DOMdocument di PHP

 

 

la classe:

class xml_form {

	function write_xml($value){


		 
		$dom = new DomDocument('1.0', 'UTF-8');
		//creo i tags
		$first= $dom->appendChild($dom->createElement('language'));

		$database= $first->appendChild($dom->createElement('labels'));		

		foreach($value as $key => $valore){
				
				    $record = $database->appendChild($dom->createElement('label'));
				
				    $record_attr = $dom->createAttribute('id');
					$record->appendChild($record_attr);
					
					$root_text = $dom->createTextNode($key);
	    			$record_attr->appendChild($root_text); 
					
					$value = $record->appendChild($dom->createElement('value'));
					$value->appendChild($dom->createTextNode($valore));
					
				}		

		$dom->formatOutput = true;

		$test1 = $dom->saveXML();



		$dom->save('miofileit.xml');

		echo 'Salvataggio miofileit.xml effettuato con successo';

	}


	function read_xml(){
	
		$xml = simplexml_load_file('language/itLang.xml');
	
		echo "<h3>N. record= ".count($xml->labels->label)."</h3>";
			
		foreach($xml->labels->label  as $article)
			
		{
			echo '<div><label for="'. $article[id].'">'. $article[id].'</label><input name="'. $article[id].'" value="'.$article->value.'" /></div><br/>';
				
		}
	 
	}	 
}

il file xml

<?xml version="1.0" encoding="UTF-8"?>
<language>
  <labels>
    <label id="prova">
      <value>il mio primo testo di prova</value>
    </label>
    <label id="prova2">
      <value>il mio secondo testo di prova</value>
    </label>
    <label id="prova3">
      <value>il mio terzo testo di prova</value>
    </label>
  </labels>
</language>

vi basterà ora creare un form in una pagina php e richiamare gli elementi della classe:

<?php 

$CXml=new xml_form;
if($_REQUEST["Comando"]=='Salva'){
			
		$CXml-> write_xml($_REQUEST);
		
}

?>
<form class="demo" method="post" action="editLang.php"><?
$CXml->read_xml();
?>
<input id="salva" type="Submit" name="Comando" value="Salva" />
</form>

Spero vi sia utile!

off