Diverse for loops
Ik heb een script dat middels simplexml_load_file() een XML file doorloopt en items in een database insert.
Echter heb ik afhankelijk van de XML feed een andere loop. Hoe kan ik dit het beste oplossen. Eigenlijk komt het er op neer dat ik meerdere foreach loops heb die ik wil samen voegen en middels bijvoorbeeld 1 variable wil kunnen aanpassen aan de situatie. Zie onderstaand:
foreach ($xml_load->product as $items) {
}
foreach ($xml_load->programs->program->products->product as $items) {
}
- - - -
Mijn eerste gedachte was zoiets als onderstaand. Maar dat werkt niet.
if($case = 1) {
$loop_variable = 'programs->program->products->product';
} else {
$loop_variable = 'product';
}
foreach ($xml_load->$loop_variable as $items) {
}
Mijn tweede gedacht was zoiets, ook dat werkt niet :)
if($case = 1) {
foreach ($xml_load->programs->program->products->product as $items) {
} else {
foreach ($xml_load->product as $items) {
}
Gewijzigd op 26/09/2021 20:49:36 door Menno Poohver
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
<?php
function do_the_loop($array){
foreach($array as $items){
//doe ding
}
}
do_the_loop($xml_load->programs->program->products->product);
do_the_loop($xml_load->product);
?>
function do_the_loop($array){
foreach($array as $items){
//doe ding
}
}
do_the_loop($xml_load->programs->program->products->product);
do_the_loop($xml_load->product);
?>
Maakt de boel meteen een stuk overzichtelijker omdat je niet een heel stuk alles-in-een spaghetti hebt!
Voor de ene XML feed wordt deze gebruikt:
Voor de andere XML feed:
Beide feeds staan opgeslagen als records in een database. Ik zou bij die records graag opslaan welke van de 2 do_the_loop gebruikt moet worden.
Wat is de beste manier om:
of
Op te slaan als waardes in een MYSQL database? Overigens is moet het ook mogelijk zijn om nog een variant te hebben. Het zijn dus geen vaste waardes. Ze verschillen per feed.
Gewijzigd op 29/09/2021 15:07:48 door Menno Poohver
- https://dev.mysql.com/doc/refman/8.0/en/xml-functions.html
- https://www.php.net/manual/en/class.domxpath.php