Avatar billede ttc Nybegynder
21. oktober 2004 - 15:49 Der er 4 kommentarer og
1 løsning

problemer med simplexml

håber i kan hjælpe mig

sider og roder med simplexml og har da oxo fundet ude af hvordan jeg kan ænder de forskellige værdier i xml filen, men jeg kan ikke finde ude af hvordan jeg tilføjer til xml filen.

mit xml file.
<?xml version="1.0" encoding="ISO-8859-1"?>
<jokes>
  <joke id="0">
    <sub>111</sub>
    <content>foo</content>
  </joke>
  <joke id="1">
    <sub>222</sub>
    <content>baa</content>
  </joke>
</jokes>

nu er det at jeg gerne vil havde tilføjet

<joke id="2">
  <sub>333<sub>
  <content>foobar</content>
</joke>

til xml filen ved hjælp af simplexml
Avatar billede coderdk Praktikant
21. oktober 2004 - 20:50 #1
Jeg tror du er nødt til at bruge noget andet, som dom: http://dk2.php.net/dom
Avatar billede ttc Nybegynder
21. oktober 2004 - 21:59 #2
jo helt sikkert dom ville være en løsning.
det er bare ikke lige det jeg er ude efter...
ved at bruge functionen asXML()

http://www.php.net/manual/en/function.simplexml-element-asxml.php

kan jeg godt ænder værdien af et element...

spørgsmålet er nu er det muligt at tilføje et element

/TTC
Avatar billede coderdk Praktikant
21. oktober 2004 - 23:31 #3
Yep, jeg har også kigget lidt på det, og jeg kan ikke lige se en måde - jeg prøvede nogle forskellige ting, men den ville ikke godtage det ;)
Det lader ikke til at asXML-metoden er løsningen...
Avatar billede Slettet bruger
21. oktober 2004 - 23:35 #4
ifølge brugerkommentarerne på http://www.php.net/manual/en/ref.simplexml.php kan det kun lade sig gøre via dom. Det er også vist, hvordan.
Avatar billede ttc Nybegynder
24. oktober 2004 - 13:30 #5
Efter at havde kigget en hele del forskellige kode igemmen fandt jeg i mulig løsning på mit eget problem. godt nok er løsningen skod kode men det kan bruges.

<?
$xml = simplexml_load_file('testxml.xml');

$i = 0;
$c = 1;
$xmlString = '';
$root = 'jokes';


do{
    if(is_object($xml->joke[$i])){

        $xmlString .= '
                                    <joke id="'.$i.'">
                                        <sub>'.$xml->joke[$i]->sub.'</sub>
                                        <content>'.$xml->joke[$i]->content.'</content>
                                    </joke>
                                    ';
    }else{
        $c = 0;
    }
$i = $i+1;   
}while($c == 1);

$NewXmlString='
<joke id="4">
    <sub>huka</sub>
    <content>bla</content>
</joke>';

$newjoke = new SimpleXMLElement('<'.$root.'>'.$xmlString.$NewXmlString.'</'.$root.'>');
print_r($newjoke);

file_put_contents('testxml.xml', $newjoke->asXML());   
?>

arbejder stadig på den..
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester