ERLEDIGT
NEIN
NEIN
ANTWORTEN
0
0
ZUGRIFFE
440
440
EMPFEHLEN
-
Hallo PHP Freunde,
ich stehe gerade ziemlich auf dem Schlauch. Ich soll mittels PHP ein XML Dokument auslesen. Dies ist weiterhin kein großes Problem. Das richtige Auslesen der "IDs" in den Tags jedoch schon. Am Ende soll dies in eine MySQL DB eingetragen werden. Die XML sieht so aus:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
<?xml version="1.0" encoding="ISO-8859-1"?> <userimport> <organization id="BehoerdeA"> <user> <profile> <credentials> <login-id>mustermann</login-id> <password>muster123</password> <enabled>1</enabled> <memoryQuestion>Name des Hundes?</memoryQuestion> <memoryAnswer>Mo</memoryAnswer> </credentials> <first-name>Peter</first-name> <last-name>Mustermann</last-name> <title>Dr.</title> <middleName>von</middleName> <addresses> <address name="Default Address"> <city>Wiesbaden</city> <postal-code>56780</postal-code> <street>Frankfurter Str. 1</street> <street2>Raum 47</street2> <phone-business-direct>0621 / 6560 - 100</phone-business-direct> <email>peter.mustermann@localhost</email> </address> </addresses> <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> </profile> </user> <user> <profile> <credentials> <login-id>deich</login-id> <password>deich123</password> <enabled>1</enabled> <memoryQuestion>Name der Katze?</memoryQuestion> <memoryAnswer>Miau</memoryAnswer> </credentials> <first-name>Dieter</first-name> <last-name>Deich</last-name> <title></title> <middleName></middleName> <addresses> <address name="Default Address"> <city>Paderborn</city> <postal-code>33104</postal-code> <street>Briloner Str. 1</street> <street2>Raum 46</street2> <phone-business-direct>05251 / 6510 - 100</phone-business-direct> <email>dieter.deich@localhost</email> </address> </addresses> <user-groups id="AbteilungC"> <user-group id="Standard-Mitarbeiter"/> <user-group id="Azubi"/> </user-groups> <user-groups id="AbteilungD"> <user-group id="Standard-Mitarbeiter"/> <user-group id="Azubi"/> </user-groups> </profile> </user> </organization> </userimport>
Im speziellen meine ich die IDs der XML Tags "user-groups" & "user-group". Diese sollten am besten mittels einer Schleife ausgelesen und in eine DB eingetragen werden. Das einlesen und eintragen der XML Datei ist kein Problem, funktioniert auch. Das rochtige einlesen und eintragen der "IDs" wie bspw. "<user-groups id="AbteilungA">" jedoch schon. Mein Code sieht derzeit so aus:
Da sind teilweise noch auskommentierte Codeblöcke drin, die nicht so wirklich funktionieren wollen. Wichtig ist nur, das am Ende in der Tabelle folgendes eingetragen wird:PHP-Code:<?php
//Datenbankverbindung
include("db_connect.php");
//pdf erzeugung
include("fpdf.php");
//angabe zum pfad der xml-datei und speichern in eine variable
$file = "beispiel_xml.xml";
$xml = simplexml_load_file($file);
//dateigröße in variable speichern
$xmlmax = $xml->xpath('/userimport/organization');
$max = count($xml);
//speichern der werte in ein array
$login_id = $xml->xpath('/userimport/organization/user/profile/credentials/login-id');
$password = $xml->xpath('/userimport/organization/user/profile/credentials/password');
$enabled = $xml->xpath('/userimport/organization/user/profile/credentials/enabled');
$memoryQuestion = $xml->xpath('/userimport/organization/user/profile/credentials/memoryQuestion');
$memoryAnswer = $xml->xpath('/userimport/organization/user/profile/credentials/memoryAnswer');
$first_name = $xml->xpath('/userimport/organization/user/profile/first-name');
$last_name = $xml->xpath('/userimport/organization/user/profile/last-name');
$title = $xml->xpath('/userimport/organization/user/profile/title');
$middleName = $xml->xpath('/userimport/organization/user/profile/middleName');
$city = $xml->xpath('/userimport/organization/user/profile/addresses/address/city');
$postal_code = $xml->xpath('/userimport/organization/user/profile/addresses/address/postal-code');
$street = $xml->xpath('/userimport/organization/user/profile/addresses/address/street');
$phone_business_direct = $xml->xpath('/userimport/organization/user/profile/addresses/address/phone-business-direct');
$email = $xml->xpath('/userimport/organization/user/profile/addresses/address/email');
$user_groups = $xml->xpath('/userimport/organization/user/profile/user-groups');
$user_role = $xml->xpath('/userimport/organization/user/profile/user-groups/user-group');
$profile = $xml->xpath('/userimport/organization/user/profile');
echo count($user_groups[1]);
$j = 0;
for($i = 0; $i <= $max; $i++){
//echo "i: ".$i."<br>";
$enabled_int = intval($enabled[$i]);
$postal_code_int = intval($postal_code[$i]);
//eintrag in Datenbank
$insert = "INSERT INTO kdb (loginid, password, enabled, memoryquestion, memoryanswer, firstname, lastname, title, middlename, city, postalcode, street, phonebusinessdirect, email) VALUES ('$login_id[$i]', '$password[$i]', '$enabled_int', '$memoryQuestion[$i]', '$memoryAnswer[$i]', '$first_name[$i]', '$last_name[$i]', '$title[$i]', '$middleName[$i]', '$city[$i]', '$postal_code_int', '$street[$i]', '$phone_business_direct[$i]', '$email[$i]')";
$eintragen = mysql_query($insert);
//echo $eintragen;
// $groupmax = count($profile[$i])-6;
// //echo $groupmax."<br>";
// $tmp = 0;
// for($j = 0; $j <= $groupmax; $j++){
// echo "j: ".$j."<br>";
// $department = $user_groups[$j]->attributes();
// echo "Department: ".$department;
// echo "<br>";
// $rolemax = count($user_groups[$j]);
// echo "rolemax: ".$rolemax."<br>";
// for($k = $tmp; $k <= $rolemax; $k++){
// echo "k: ".$k."<br>";
// $role = $user_role[$k]->attributes();
// echo "Role: ".$role;
// echo "<br>";
// $tmp = $k+1;
// //echo "<br>TEMP:".$tmp."<br>";
// }
// }
}
//for($i = 0;$i <= $max;$i++){
for($j = 0;$j <= count($profile[0])-5;$j++){
$department[$j] = $user_groups[$j]->attributes();
//var_dump($department[$j]);
echo $j."Department: ".$department[$j]."<br>";
}
$tmp = 0;
for($p = $tmp;$p <= count($user_groups[1])-1;$p++){
$role = $user_role[$p]->attributes();
echo "Role: ".$role."<br>";
$tmp = $p;
}
//}
?>
loginid, Abteilung (id des Tags <user-groups>) und recht (id des tags "<user-group>).
Das Problem ist auch, das Array mit den ids des Tags <user-group> nur ein Array ist. Sprich, die Elemente 1 - x belegt sind. Ich hatte es, wie man im auskommentierten Codeblock sieht, versucht mit einem zwischenspeicher. Hat jedoch auch nicht geholfen.
Hat jemand von euch einen Hinweis, Tipp oder Lösungsvorschlag? Ich steh da derzeit total auf dem Schlauch...
Vielen Dank schonmal.
Viele Grüße
Moritz
Ähnliche Themen
-
CSV mittels Array in MySql-Datenbank speichern
Von Kalito im Forum PHPAntworten: 2Letzter Beitrag: 09.09.10, 15:04 -
Mittels PHP eine Excel Datei öffnen - bearbeiten - speichern
Von 3Dnavigator im Forum PHPAntworten: 1Letzter Beitrag: 05.11.08, 14:54 -
UTF-Strings lassen sich nicht mittels PHP in MySQL speichern
Von Thomas D im Forum PHPAntworten: 4Letzter Beitrag: 25.07.08, 14:57 -
Graphics mittels AWT speichern
Von morphkiller89 im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 1Letzter Beitrag: 12.02.08, 22:12 -
PDF-Datei mittels PHP öffnen, bearbeiten und speichern
Von easywing im Forum PHPAntworten: 7Letzter Beitrag: 07.02.08, 15:37





Zitieren
Login






[PHP] [Codeschnipsel] ImageColor aus HTML-Farbcodierung erstellen