hoi,
ik probeer een xml bestand uit te lezen met php.
dit lukt ook prima maar php ziet de xml in het bestand dus als xml en kan ik niet alles lezen.
v.b.
<param name="mode">1</param> (in xml bestand)
= 1 (in php)
en <list> (in xml bestand) = (in php(niks dus))
hoe kan ik er voor zorgen dat php wel gewoon dit ziet:
<list> ( in xml bestand) = <list> (in php)
de code waarmee ik het bestand uitlees:
$file = fopen($bestand, "r") or exit("Unable to open file!");
while(!feof($file))
{
$regel = fgets($file, 4096);
echo $regel ."<br>";
if($regel == "<list>"){
echo 'list';
}
}
fclose($file);
En waarom doe je dat niet met bv. SimpleXML of DOM? Dat is een heel stuk eenvoudiger. XML is een hele hoop verpakking met daarin wat data. En het is die data die je nodig hebt, vandaar dat bv. SimpleXML erg handig is.
Heb er even naar gekeken, denk dat dit inderdaad is wat ik zoek.
maar ik heb de xml bestanden wel nodig dus kan er niet iets aan veranderen.
en ik zie dat SimpleXML alleen maar met een xml string overweg kan.
is het ook mogelijk om van mijn xml bestand een xml string te maken?
dit heb ik er nu van gemaakt:
$tijdelijk = '<<<XML';
$file = fopen($bestand, "r") or exit("Unable to open file!");
while(!feof($file))
{
$regel = fgets($file, 4096);
$tijdelijk .= $regel;
}
$tijdelijk .= 'XML;';
$xml = new SimpleXMLElement($tijdelijk);
echo $xml;
//Output a line of the file until the end is reached
fclose($file);
dit geeft een heleboel errors. v.b.
Warning: SimpleXMLElement::__construct() [function.SimpleXMLElement---construct]: Entity: line 1: parser error : StartTag: invalid element name in H:\xampp\htdocs\... on line 17
SimpleXML is vooral handig bij het lezen van bestanden, voor het aanmaken en wijzigen van bestanden, kun je beter DOM gebruiken: http://www.php.net/dom
DOM is wat complexer maar nog steeds geen rocket science, moet je dus wel uit kunnen komen.
fopen() en dat soort bestandsfuncties heb je niet nodig, je gaat uitsluitend de XML-methodes gebruiken. Het vereist dus een andere aanpak.