27. november 2008 - 15:55
Der er
8 kommentarer
XML og php
Hejsa, jeg har et xml dokument som ser således ud: ( music.xml ) <?xml version="1.0" encoding="utf-8"?> <music> <sound> <title>Test</title> <artist>Test Artist</artist> <genre>Test Genre</genre> </sound> </music> Er der nogen der kan hjælpe mig med at få php til at fjerne <sound></sound> og alt hvad der er imellem? og derefter overskrive det gamle music.xml. Har kigget på simpleXML men kan ikke få det til at virke :( på forhånd tak :)
Annonceindlæg fra Computerworld it-jobbank
27. november 2008 - 16:05
#1
skal man få at du vil have den til at se sådan ud enden den overskrive filen music.xml <?xml version="1.0" encoding="utf-8"?> <music> <title>Test</title> <artist>Test Artist</artist> <genre>Test Genre</genre> </music>
27. november 2008 - 16:07
#3
Hvis du vil fjerne sound og alt imellem så: <?php $doc = new DOMDocument(); $doc->load('C:\before.xml'); $sounds = $doc->getElementsByTagName('sound'); foreach($sounds as $sound) { $sound->parentNode->removeChild($sound); } $doc->save('C:\after.xml'); ?>
27. november 2008 - 16:45
#4
Tusind tak, kan du så også fortælle mig hvis det så således ud: <?xml version="1.0" encoding="utf-8"?> <music> <sound name="testName"> <artist>Test Artist</artist> <genre>Test Genre</genre> <type>mp3</type> </sound> <sound name="testName2"> <artist>Test Artist</artist> <genre>Test Genre</genre> <type>mp3</type> </sound> </music> og den skal fjerne alt mellem <sound name="testName"> og </sound> på forhånd tak :)
27. november 2008 - 17:15
#7
Så prøv den her: <?php $doc = new DOMDocument(); $doc->load('C:\before.xml'); $xpath = new DOMXPath($doc); $res = $xpath->query('//music/sound[@name="testName"]'); $togo = $res->item(0); $togo->parentNode->removeChild($togo); $doc->save('C:\after.xml'); ?>