Hallo @all,
ich sitze vor einem Problem, zu dem ich einfach keine Lösung finde, vielleicht kann mir einer helfen.
Beschreibung:
Ich möchte eine XML-Datei auslesen, was auch nicht das Problem ist, der Aufbau meiner XML-Datei erschwert mir das auslesen ACHTUNG ich kann die Datei nicht anders aufbauen.
Bsp.
mein jetziges Script ist:
Leider überschreibt mir die Ausgabe das Array (assoziatives Array) als ausgabe bekomme ich z.B.
Array
(
[date] => Array
(
[lang] => de_DE
[detection] => /^(([0-9]{1,2})[ ]([0-9]{2})[ ]([0-9]{2,4}))$/
[format] => /^([0-9]{1,2})[ ]([0-9]{2})[ ]([0-9]{2,4})$/
[structure] => dmy
)
[anderer inhalt]
)
Ich möchte jedoch ein array aufbauen das so aussieht
array[date][de_DE][description] = ......
Kann mir einer ein paar informationen geben wie ich das hinbekommen kann? ich habe nur PHP4 und domxml zur verfügung.
Ich bedanke mich schon jetzt.
raven
ich sitze vor einem Problem, zu dem ich einfach keine Lösung finde, vielleicht kann mir einer helfen.
Beschreibung:
Ich möchte eine XML-Datei auslesen, was auch nicht das Problem ist, der Aufbau meiner XML-Datei erschwert mir das auslesen ACHTUNG ich kann die Datei nicht anders aufbauen.
Bsp.
Code:
<date> <lang>de_DE</lang> <lang>de_AT</lang> <lang>pl_PL</lang> <lang>sl_SL</lang> <detection>/^(([0-9]{1,2})([.])?([0-9]{2})([.])?([0-9]{2,4}))$/</detection> <format>/^([0-9]{1,2})[.]?([0-9]{2})[.]?([0-9]{2,4})$/</format> <structure>dmy</structure> </date> <date> <lang>iso</lang> <lang>en_EN</lang> <lang>en_US</lang> <lang>en_GB</lang> <detection>/^(([0-9]{4})[-]([0-9]{2})[-]([0-9]{2}))$/</detection> <format>/^([0-9]{4})[-]([0-9]{2})[-]([0-9]{2})$/</format> <structure>ymd</structure> </date>
PHP-Code:
function domxml_xmlarray ($branch)
{
$object = Array ();
$objptr = &$object;
$branch = $branch->first_child ();
while ($branch)
{
if (!($branch->is_blank_node()))
{
switch ($branch->node_type())
{
case XML_TEXT_NODE:
{
$objptr = $branch->node_value();
break;
}
case XML_ELEMENT_NODE:
{
$objptr =& $object[$branch->node_name()];
break;
}
}
if ($branch->has_child_nodes ()) {
$objptr = domxml_xmlarray ($branch);
}
}
$branch = $branch->next_sibling ();
}
return $object;
}
Leider überschreibt mir die Ausgabe das Array (assoziatives Array) als ausgabe bekomme ich z.B.
Array
(
[date] => Array
(
[lang] => de_DE
[detection] => /^(([0-9]{1,2})[ ]([0-9]{2})[ ]([0-9]{2,4}))$/
[format] => /^([0-9]{1,2})[ ]([0-9]{2})[ ]([0-9]{2,4})$/
[structure] => dmy
)
[anderer inhalt]
)
Ich möchte jedoch ein array aufbauen das so aussieht
array[date][de_DE][description] = ......
Kann mir einer ein paar informationen geben wie ich das hinbekommen kann? ich habe nur PHP4 und domxml zur verfügung.
Ich bedanke mich schon jetzt.
raven
Kommentar