Gå til innhold

Lage utvidbar xml fil med php


Anbefalte innlegg

Hei

 

Jeg holder på på et prosjekt hvor vi skal kunne sende noe informasjon via en nettportal til en fil. På siden skal man kunne skrive inn informasjon i f.eks tekstbokser, og dette skal lagres i xml. Vi skal kunne skrive f.eks tilbud til en kunde, hvor du har type produkt og navn. Eksempel på xml:

 

<?xml version="1.0" encoding="UTF-8" ?>
<alletilbud>
<tilbud>
<navn>Kunderådgivning</navn>
<type>Tjeneste</type>
</tilbud>
</alletilbud>

 

Vi har laget php for å gjøre dette. Eneste problemet er at vi skal kunne legge til flere tilbud til samme kunde, som skal lagres i samme fil. Hvordan skal vi kunne flytte slutt-elementet (</alletilbud>) til slutten av dokumentet? alletilbud tagen må jo dekke over alt innholdet, og kan ikke stå i midten av dokumentet...

 

Med det vi har nå, vil bare det nye innholdet bli lagt til på slutten, eller endt </alletilbud> tag, og vi får feil på xml dokumentet

 

php-koden for å skrive til fil:

<?
session_start();
if(isset($_POST['navn'])) {

 $xml_dec = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>";
 	
   $xmlfileName = 'testfil';
 
 $empName = $_POST['navn'];
 
 $empAddress = $_POST['type'];
 
 $rootELementStart = "<alletilbud>";
 
 $rootElementEnd = "</alletilbud>";  
 
 $filename = 'xml_files/testfil.xml';
 

 if (file_exists($filename)) {
 
 	echo "Denne filen finnes allerede, legger til info";
 
   $fh = fopen("xml_files/testfil.xml", "r");
   $fcontent = fread($fh, filesize("xml_files/testfil.xml"));

   $xml_doc = $fcontent;
 
   $xml_doc .=  "<tilbud>";
 
   $xml_doc .=  "<navn>";
 
   $xml_doc .=  $empName;
 
   $xml_doc .=  "</navn>";
 
   $xml_doc .=  "<type>";
 
   $xml_doc .=  $empAddress;
 	
   $xml_doc .=  "</type>";
 
   $xml_doc .=  "</tilbud>";
   
   $default_dir = "xml_files/";
 
   $default_dir .= $xmlfileName .".xml";
 
   $fp = fopen($default_dir,'w');
 
   $write = fwrite($fp,$xml_doc);
   	
   echo "<br />Tilbud lagret";
   
   fclose($fh);
   fclose($fp); 
 	}
 
 else {

 	$xml_doc =  $xml_dec;
 	
 	$xml_doc .=  $rootELementStart;
 	
 	$xml_doc .=  "<tilbud>";

 	$xml_doc .=  "<navn>";

 	$xml_doc .=  $empName;

 	$xml_doc .=  "</navn>";

 	$xml_doc .=  "<type>";

 	$xml_doc .=  $empAddress;
 
 	$xml_doc .=  "</type>";
 	
 	$xml_doc .=  "</tilbud>";

 	$xml_doc .=  $rootElementEnd;
  
 	$default_dir = "xml_files/";

 	$default_dir .=   $xmlfileName .".xml";


 	$fp = fopen($default_dir,'w');

 	$write = fwrite($fp,$xml_doc);
   
 	echo "Tilbud lagret";
 }
}
?>

 

Her er xml filen vi ender opp med etter å ha lagt til et tilbud med denne funksjonen:

 

<?xml version="1.0" encoding="UTF-8" ?>
<alletilbud>
<tilbud>
<navn>EnTjeneste</navn>
<type>Tjeneste</type>
</tilbud>
</alletilbud>
<tilbud>
<navn>EnVare</navn>
<type>Vare</type>
</tilbud>

Håper det er noen som har litt peiling på det her. På forhånd takk :)

Lenke til kommentar
Videoannonse
Annonse

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...