Toset Skrevet 12. mai 2006 Del Skrevet 12. mai 2006 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
CruellaDeVille Skrevet 12. mai 2006 Del Skrevet 12. mai 2006 hvis du leser litt på http://sindrem.com/php-artikler/xml.html så tror jeg du skal finne svaret ditt der. Han har laget en gjestebok i xml, med <gjestebok> som rot-element, og når han leser inn fra fil fjerner han denne, og legger den til når det skrives til fil igjen. Lenke til kommentar
Toset Skrevet 12. mai 2006 Forfatter Del Skrevet 12. mai 2006 Ah, det ser jo ut som akkurat det eg trenger! Takker og bukker Lenke til kommentar
The Red Devil Skrevet 14. mai 2006 Del Skrevet 14. mai 2006 Vist serveren du skal bruke det på har php 5 så vil det være mye meir effektivt å bruke den oppgraderte DOM funksjonen. http://no2.php.net/manual/en/function.dom-...ent-savexml.php Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå