Hi Leute,
hab ein kleines Problem mit der programmier-logik.
In einer XML Datei sind User gespeichert. Jeder User kann einer oder mehreren Gruppen (Abteilungen) angehören. Innerhalb dieser gruppen gibt es bestimmte Rollen, die von User zu User, Abteilung zu Abteilung unterschiedlich sein können. Ein Beispiel-Auszug aus der XML-Datei:
(<...> & </...> sind jeweils Platzhalter für weitere Tags)
Diese "IDs" sollen mitsamt der login-id, die weiter oben im XML-Dokument vorhanden ist, in eine DB eingetragen werden. Dies habe ich mittels folgendem Code versucht, klappt teilweise auch:
Dies erzeugt folgende Ausgabe:
Der Fehler liegt daran, das er die erste foreach-Schleife zu häufig durchläuft. Denn in diesem Array sind alle "IDs" der Tags <user-groups> gespeichert. Der erste User hat jedoch nur 2.
Auf die einzelnen Tags greiffe ich per "xpath" zu. Kann mir da einer weiterhelfen, wie ich es hinbekomme, das ich zu der ichtigigen loginid die richtigen Abteilungen und Rollen in einer DB gespeichert bekomme? Wenn ich die Ausgabe habe, ist das Umwandeln in ein MySQL Befehl ein Kinderspiel. Mir mangelt es nur gerade an der Programmier-Logik
Danke für eure Hilfe! Ich bin über jeden Denkanstoß sehr dankbar...!
hab ein kleines Problem mit der programmier-logik.
In einer XML Datei sind User gespeichert. Jeder User kann einer oder mehreren Gruppen (Abteilungen) angehören. Innerhalb dieser gruppen gibt es bestimmte Rollen, die von User zu User, Abteilung zu Abteilung unterschiedlich sein können. Ein Beispiel-Auszug aus der XML-Datei:
Code:
<user> <...> <user-groups id="AbteilungA"> <user-group id="Beschaffer"/> <user-group id="Standard-Mitarbeiter"/> </user-groups> <user-groups id="AbteilungB"> <user-group id="Genehmigender"/> <user-group id="Standard-Mitarbeiter"/> <user-group id="Aushilfe"/> <user-group id="Zivi"/> </user-groups> </...> </user>
Diese "IDs" sollen mitsamt der login-id, die weiter oben im XML-Dokument vorhanden ist, in eine DB eingetragen werden. Dies habe ich mittels folgendem Code versucht, klappt teilweise auch:
PHP-Code:
$j = 0;
$i = 0;
for($u = 0;$u <= $anz_user;$u++){
echo "<br>".$login_id[$u];
$count_groups = count($profile[$u])-6;
foreach($profile[$u] as $key){
echo "<br>".$user_groups[$i]->attributes()."<br>";
foreach($user_groups[$i] as $key){
echo $user_role[$j]->attributes()."<br>";
$j++;
}
$i++;
}
}
mustermann
AbteilungA
Beschaffer
Standard-Mitarbeiter
AbteilungB
Genehmigender
Standard-Mitarbeiter
Aushilfe
Zivi
hier sollte "deich" stehen, die loginid des zweiten users
AbteilungC
Standard-Mitarbeiter
Azubi
AbteilungD
Standard-Mitarbeiter
Azubi
AbteilungE
Leiter
Senior
AbteilungF
Betreuer
Gruppenleiter
AbteilungG
Betreuer
Gruppenleiter
hier würde, sofern weitere user vorhanden wären, nach dem selben schema verlaufen: loginid, Abteilungen, rollen
Fatal error: Call to a member function attributes() on a non-object in C:\xampplite\htdocs\kdb_test\xml_to_mysql.php on line 80
AbteilungA
Beschaffer
Standard-Mitarbeiter
AbteilungB
Genehmigender
Standard-Mitarbeiter
Aushilfe
Zivi
hier sollte "deich" stehen, die loginid des zweiten users
AbteilungC
Standard-Mitarbeiter
Azubi
AbteilungD
Standard-Mitarbeiter
Azubi
AbteilungE
Leiter
Senior
AbteilungF
Betreuer
Gruppenleiter
AbteilungG
Betreuer
Gruppenleiter
hier würde, sofern weitere user vorhanden wären, nach dem selben schema verlaufen: loginid, Abteilungen, rollen
Fatal error: Call to a member function attributes() on a non-object in C:\xampplite\htdocs\kdb_test\xml_to_mysql.php on line 80
Auf die einzelnen Tags greiffe ich per "xpath" zu. Kann mir da einer weiterhelfen, wie ich es hinbekomme, das ich zu der ichtigigen loginid die richtigen Abteilungen und Rollen in einer DB gespeichert bekomme? Wenn ich die Ausgabe habe, ist das Umwandeln in ein MySQL Befehl ein Kinderspiel. Mir mangelt es nur gerade an der Programmier-Logik

Danke für eure Hilfe! Ich bin über jeden Denkanstoß sehr dankbar...!
Kommentar