01. februar 2008 - 12:01Der er
13 kommentarer og 2 løsninger
SimpleXMLElement gem i fil
Hejsa alle eksperten
Jeg sidder og prøver at rode med noget ajax/xml/php hvor jeg via ajax vil kalde en php fil der tilføjer data til en xml fil
Jeg bruger php's SimpleXMLElement til at oprette et nyt opbejkt ud fra den eksisterende fil. Så kalder jeg.
$fil = new SimpleXMLElement("fil.xml"); $fil->elm->addChild("tag", "cont");
Det virker i og for sig fint nok hvis jeg prøver at udskrive $fil->elm->children() så bliver det nye barn jeg har tilføjet også udskrevet. Men det bliver ikke gemt i filen, hvilket jeg godt vil have den til.
Jeg har på fornemmelsen at der er noget i det her jeg har misforstået godt og grundigt. Nogen der kan guide mig lidt på vej?
Det er det der er problemet, jeg har ingen kode til at gemme filen, det var det jeg oprindeligt troede addChild() ville gøre for mig, men der tog jeg fejl. Så prøvede jeg med noget fopen() og gemme $fil->asXML() i den, men det var ikke nogen synderligt brugbar løsning så den gik jeg væk fra igen.
Mit spørgsmål er egentligt om der ikke er en indbygget funktion i SimpleXMLElemet objektet som kan gemme de ændringer man har lavet?
Okay, jeg synes bare ikke jeg kunne få det til at virke, fordi at asXML() også returnerer xml's svar på DOCTYPE, (ved ikke hvad den hedder), men noget alla dette: <?xml version="1.0"?>
Problemet er at jeg bare vil tilføje en child node til dokumentet ikke hive hele dokumentet ud for at indsætte det igen og overskrive det eksisterende, da jeg ikke ser det som nogen særligt holdbar løsning performance mæssigt
Nej det siger jeg heller ikke. Grunden til jeg vil lave det er af den simple grund at jeg ville træne mine kompetencer inden for XML+PHP da jeg ikke har ret meget begreb om hvordan det fungerer. Da jeg højst sansynligvis kommer til at bruge det i mit fremtidige arbejde, omend i en lidt anden sammenhæng, og derfor gerne på forhånd vil vide hvordan det fungerer.
Derfor er det udelukke for "uddannelsesmæssige" grunde at jeg spørger, ikke fordi jeg nødvendigvis vil bruge det til noget konstruktivt lige i dette tilfælde, men evt. i nærmeste fremtid.
Tja.. Når nu erik ikke vil have point, så kan du lige så godt få lidt af dem. Jeg har rigeligt til hvad jeg skal bruge:-)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.