Diese Funktion stammt aus der Free Amazon Web Service Funktionen Sammlung www.chipdir.nl/amazon/ und das Copyright liegt bei Jaap van Ganswijk
Beschreibung: Es geht darum eine XML Datei in einen PHP Array zu schreiben, um den im weiteren Scipt zu verwenden.
Es ist aber nötig die Namen der XML Felder zu kennen. Wenn du diese noch nicht kennt, kann man die Testfunktion ausführen (Ungetestete Funktion).
Um den Code zu kopieren benutze die Edit Funktion.
function do_printR($arr) {
while (list($k,$v) = each($arr)) {
if (is_array($arr[$k])) {
echo $k.": Array<br>";
do_printR($arr[$k]);
} else {
echo $k.": ".$v."<br>";
}
}
}
Funktion um XML in PHP Array umzuwandeln Input: Korrekter XML Code Output: Array mit allen Werten
Die Funktion xml2array wandelt einen XML String in einen Array um.
CODE
function xml2array($s) {
if ($Atmp1=explode('>',$s,2)
/* && ereg('^<\?(xml .*)\?$',$Atmp1[0],$Atmp2)*/) {
//$A['xml']=$Atmp2[1];
//XML Version, kümmert niemanden
//funktioniert nur bei korrekten XML eingaben
xml2array_sub($A,$Atmp1[1]);
}
return $A;
}
function xml2array_sub(&$A,$s) {
global $error_msg;
for ($c=0;ereg('<([^<>/ ]*)( [^<>]*)?/>(.*)',$s,$Atmp1) or
ereg('<([^<>/ ]*)( [^<>]*)?>(.*)',$s,$Atmp1) and
$Atmp2=explode('</'.$Atmp1[1].'>',$Atmp1[3],2);++$c) {
$E=array();
$tag=$Atmp1[1];
if ($Atmp1[2]) {
$Atmp3=explode(' ',substr($Atmp1[2],1));
foreach ($Atmp3 as $d) {
$Atmp4=explode('=',$d,2);
$Atmp4[1]=ereg_replace('^"(.*)"$','\1',$Atmp4[1]);
$E[$Atmp4[0]]=$Atmp4[1];
}
}
if ($Atmp2) {
if (!xml2array_sub($E,$Atmp2[0])) {
$E=$Atmp2[0];
}
$s=$Atmp2[1]; //rest of the xml-code
$Atmp2=false;
}
else {
$s=$Atmp1[3]; //rest of the xml-code
}
if ($A[$tag]) { //does it already exist?
//not already a numberically indexed array?
if (!is_array($A[$tag]) or !$A[$tag][0]) {
$Atag=$A[$tag]; //remove element again
unset($A[$tag]);
//make old element first element of it's former self
$A[$tag][]=$Atag;
}
if ($E) {
$A[$tag][]=$E; //add new element
}
}
else {
if ($E) {
$A[$tag]=$E;
if ($tag=='$ErrorMsg') $error_msg=$E;
}
}
}
return $c;
}
Diese Funktion stammt aus der Amazon Web Service Sammlung www.chipdir.nl/amazon/ und das Copyright liegt bei Jaap van Ganswijk