Werte aus XML Datei lesen

alex130

Erfahrenes Mitglied
Hi
Ich hab ein Problem und zwar, hab ich mehrere XML Dateien mit Kundendaten und nun möchte ich die Werte auslesen, allerdings klappt das nicht so ganz, da die Dateien immer unterschiedlich aufgebaut sind...
Hier ein Bsp.:
Code:
<PERSON Personennr="2035619" PersArtCd="N" LandesCd="A" PLZ="1030" Ort="Wien" Strasse="Strasse">
  <NATUERLICHE_PERSON Familienname="NACHNAME VORNAME" GeschlechtCd="1" Gebdat="1984-04-04" LandesCd="A" FamilienstandCd="1" /> 
  <EL-Text TxtArtCd="BER" TxtInhalt="Angestellter" /> 
  </PERSON>


<PERSON Personennr="2161486" PersArtCd="N" LandesCd="A" PLZ="1210" Ort="Wien" Strasse="Strasse">
  <NATUERLICHE_PERSON Familienname="NACHNAME VORNAME" GeschlechtCd="1" Gebdat="1900-01-01" LandesCd="A" FamilienstandCd="0" /> 
  <EL-Kommunikation KomArtCd="GT" Kennung="Festnetz" /> 
  <EL-Kommunikation KomArtCd="MT" Kennung="HandyNummer" /> 
  </PERSON>
Ich wollte es zuerst mit explode('"', $variable) machen, allerdings geht das ja nicht, da es immer anders aufgebaut ist. Hab mir auch schon überlegt das evtl. mit ereg() zu machen, doch ich weiß nicht, ob das richtig ist und wie es genau geht.
Ich brauch halt am Ende immer die ganzen Werte in den Variablen, z.B. $vorname = ...
Kann mir bitte jemand helfen?
Danke
 
hi
Danke, für deine rasche Antwort.
Ich hab auch schon ein Bsp. gefunden: http://www.html-world.de/program/php_art_9.php
Allerdings hab ich 2 Probleme:
1, Wird bei mir keine XML Datei übergeben, sondern nur der Code (wobei ich das natürlich ändern könnte)
2, kann ich es z.B. so nicht auslesen:
PHP:
<?php
$xml_file = simplexml_load_file("xml.xml");
echo $xml_file->PERSON[0]->familienname;
?>
Da die Kundendaten ja im PERSON Tag sind und der <PERSON Tag ja zuerst nicht geschlossen wird, so wie bei dem Link...

//edit:
Habs jetzt mal so gemacht:
PHP:
<?php
$xml_file = simplexml_load_file("xml2.xml");
print_r($xml_file);
?>

Nun bekomme ich diese Ausgabe:
Code:
SimpleXMLElement Object ( [PERSON] => Array ( [0] => SimpleXMLElement Object ( [@attributes] => Array ( [Personennr] => 2035619 [PersArtCd] => N [LandesCd] => A [PLZ] => 1030 [Ort] => Wien [Strasse] => Strasse ) [NATUERLICHE_PERSON] => SimpleXMLElement Object ( [@attributes] => Array ( [Familienname] => NACHNAME VORNAME [GeschlechtCd] => 1 [Gebdat] => 1984-04-04 [LandesCd] => A [FamilienstandCd] => 1 ) ) [EL-Text] => SimpleXMLElement Object ( [@attributes] => Array ( [TxtArtCd] => BER [TxtInhalt] => Angestellter ) ) ) [1] => SimpleXMLElement Object ( [@attributes] => Array ( [Personennr] => 2161486 [PersArtCd] => N [LandesCd] => A [PLZ] => 1210 [Ort] => Wien [Strasse] => Strasse ) [NATUERLICHE_PERSON] => SimpleXMLElement Object ( [@attributes] => Array ( [Familienname] => NACHNAME VORNAME [GeschlechtCd] => 1 [Gebdat] => 1900-01-01 [LandesCd] => A [FamilienstandCd] => 0 ) ) [EL-Kommunikation] => Array ( [0] => SimpleXMLElement Object ( [@attributes] => Array ( [KomArtCd] => GT [Kennung] => Festnetz ) ) [1] => SimpleXMLElement Object ( [@attributes] => Array ( [KomArtCd] => MT [Kennung] => HandyNummer ) ) ) ) ) )
Nun weiß ich nicht, wie ich auf die Elemente zugreifen kann, ich schaffs einfach nicht...
 
Zuletzt bearbeitet:
Zurück