Ik heb een xml bestand met veel informatie. Nu wil ik de tekst die tussen <name></name> staat in een database hebben. De name tags komen honderden keren voor dus handmatig is niet mogelijk. Is er een mogelijkheid dat een php script alle namen tussen die tags in een database zet ?
mysql_connect($host,$user,$pass) or die(error_melding('Verbindingsfout', 'ja', 'De verbinding met de database is mislukt.'));
mysql_select_db($db) or die(error_melding('Verbindingsfout', 'ja', 'Het selecteren van de database is mislukt.'));
$filename = 'test.xml';
$file = fopen($filename, 'r');
$xml = fread($file, filesize($filename));
fclose($file);
$text = explode('<name>', $xml);
foreach($text as $var){
if($first == true){ // de eerste kan niet worden gebruikt dus slaan we de eerste over
$name = explode('</name>', $var);
$names[] = $name[0];
} else {
$first = true;
}
}
$text = explode('<time>', $xml);
foreach($text as $var){
if($first == false){ // omdat we m hierboven op true hebben gezet draai ik het nu om, nu moet hij false zijn om door te gaan
$time = explode('</time>', $var);
$times[] = $time[0];
} else {
$first = false;
}
}
for($i = 0; $i < count($names); $i++){
$query="INSERT INTO list (name, time) VALUES ('".$names[$i]."', '".$times[$i]."')";
$result = mysql_query($query) or die ("FOUT: " . mysql_error());
}
?>
Bijna, nu pakt hij <time> niet goed. de 1e gaat goed. bij de 2e krijg ik te veel info en de 3e is weer goed. daarna blijft het leeg. Dit was bij de versie hiervoor niet het geval, toen werkt het wel goed.
Oeps het werkt wel ! Had een foutje gemaakt. had times[] veranderd in time[] en dat was dus fout. Het werkt prima nu. Super super bedankt voor al je hulp !!
het is opzich wel handig om juist wél de xml functies van php te gebruiken.
Wat bijvoorbeeld als <name> vaker voorkomt?
In dit geval kennelijk niet, maar stel
Je script is dan in een keer niet meer bruikbaar.
Het is een kwartiertje werk om simplexml functies te leren begrijpen en daarna heb je er een hoop gemak van.
Ook bijvoorbeeld als <name> zou veranderen in <name id="1"> oid.