PDA

Volledige versie bekijken : XML gegenereerd door PHP


webseb
%Europe/Berlin %633 %2007, 16:12
Wat ik doe zijn foto's online in bepaalde albums uploaden.
Deze komen in een folder. De gegevens in een database.

Om ze uit te lezen heb ik een fotoboek dat gebruik maakt van xml.
Alleen omdat de foto's kunnen wisselen wi ik dat de xml automatisch wordt gegenereerd.Het makkelijkse lijkt mij dan php.


Bijvoorbeeld, in de xml staat:
[...]
<album albumname="Album 1">
<images>
<image imagename="01.jpg" infotext="test1" />
<image imagename="02.jpg" infotext="test2" />
<image imagename="03.jpg" infotext="test3" />
</images>
</album>
<album albumname="Album 2">
<images>
<image imagename="01.jpg" infotext="test1" />
<image imagename="02.jpg" infotext="test2" />
<image imagename="03.jpg" infotext="test3" />
</images>
</album>
[..]

Alleen heb ik geen idee hoe ik moet beginnen..
Kan iemand mij helpen?

Bargok
%Europe/Berlin %636 %2007, 16:17
http://nl.php.net/dom

:) tutorials te vinden als je googled op dingen als php5 dom tutorial etc.

webseb
%Europe/Berlin %941 %2007, 23:35
Nou ik ben echt 4,5 uur aan het googlen geweest, toen nog een hele tijd hier en op andere sites gekeken, maar er is van alles wat er op lijkt, maar geen concrete uitwerkingen en alleen, "Gelukt, bedankt"

Zeg dan teminste hoe of het geluk is lijkt mij dan.

En aangezien ik niet wist dat het met "dom" te maken had, heb ik daar niet op gezocht.
Bdankt voor de reactie, ik ga het verder uitzoeken morgen.
Tnx

Bargok
%Europe/Berlin %969 %2007, 00:16
Domdocument om precies te zijn, ik maak er altijd gebruik van bij het schrijven van mijn rss feeds :). Ik zal morgen een stukje script posten dat exact laat zien hoe het werkt.

webseb
%Europe/Berlin %955 %2007, 23:55
Dat zou echt geweldig zijn. Heb het document al twee keer goed doorgelezen, maar voor iemand met weinig ervaring is het niet eenvoudig te snappen!!

Bargok
%Europe/Berlin %351 %2007, 09:26
Klein voorbeeldje hoe ik de DomDocument gebruik:

$xml = new DomDocument('1.0', 'iso-8859-1');

// Stel hoofdelement in, in dit geval <rss />
$root = $xml->createElement('rss');

// Ik zet op root arrtibute 'version=2.0'. (<rss version="2.0" />
$root->setAttribute('version', '2.0');
$root = $xml->appendChild($root);

// Vervolgens add ik subelements door eerst een nieuw element te maken
$channel = $xml->createElement('channel');
// En dan aan een element toe te voegen
$channel = $root->AppendChild($channel);

/*
Nu heb je dus:
<rss version="2.0">
<channel />
</rss>
*/

// Hier voeg ik een waarde toe aan channel
$value = $xml->createTextNode('waarde');
$value = $channel->appendChild($value);

/*
Nu heb je dus:
<rss version="2.0">
<channel>waarde</channel>
</rss>
*/

//Als je een waarde moet escapen kun je dit doen met een createCDATASection ipv //createTextNode
// Out naar browser kan met:
echo $xml->SaveXml();
// Output naar file doe je met $xml->save("bestant.xml");

septunas
%Europe/Berlin %396 %2007, 10:31
Als je met Flash werkt kan je je XML object in Flash volledig prepareren en wegschrijven met dit stukje php code :

<?php
$file = fopen("gallery.xml", "w+") or die("Can't open XML file");
$xmlString = $HTTP_RAW_POST_DATA;
if(!fwrite($file, $xmlString)){
print "Error writing to XML-file";
}
print $xmlString."\n";
fclose($file);
?>

Zo wordt je XML iedere keer volledig herschreven. Ik heb zo een gallery cms-je gemaakt voor iemand, enkele jaren geleden. Tot hiertoe is dat nooit misgelopen.

Bargok
%Europe/Berlin %403 %2007, 10:41
Daar ga je er vanuit dat flash een string stuurt als bijvoorbeeld:
$xmlString = "<rss><channel>waarde</channel></rss>" ?

Zo ja kun je beter file_put_contents() gebruiken :)