Hallo allen,
ik ben bezig met een xml parse systeem op basis van SimpleXML. Nu moet ik hiervoor naast de max 1lvl diepe items ook diepere items in een bestaande XML toevoegen.
Hiervoor laad ik eerst de xml in, deze ziet er *(bijvoorbeeld) zo uit:
Goed, stel nu dat ik in example een extra item (child) wil toevoegen. Nou weet ik dat dit gaat met:
$xml_obj->header->example->addChild('value');
Echter weet ik wel altijd de naam van het element wat ik moet toevoegen en het parent element daarvan, in dit geval <header>, maar ik wil dynamisch dingen kunnen toevoegen. Dus wanneer ik zeg:
add_child_to('example', 'value'); dat die dan zelf bepaald dat dit in header->example staat, dus dat wanneer ik alleen 'example' meegeef aan de functie, dat er dan onderstaande gebeurt.
$xml_obj->header->example->addChild('value');
Ik kan evt. ook een array meegeven aan de functie, met daarin de parents in juiste volgorde (in dit geval array('header','example');) maar ook dan lukt het me niet om dit dynamisch te doen. Komt er nog een 3e parent bij dan moet deze automatisch zo worden opgemaakt dat er onderstaande komt:
$xml_obj->header->example->eenderde_element->addChild('value');
Hopelijk snapt iemand wat ik bedoel, ik weet het even niet.
ik ben bezig met een xml parse systeem op basis van SimpleXML. Nu moet ik hiervoor naast de max 1lvl diepe items ook diepere items in een bestaande XML toevoegen.
Hiervoor laad ik eerst de xml in, deze ziet er *(bijvoorbeeld) zo uit:
XML:
1
2
3
4
5
6
7
8
9
| <?xml version="1.0" encoding="UTF-8"?> <rweb_export xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <root> <header> <creation>2009-10-11T09:30:47Z</creation> <type>type of xml export</type> <example> </header> </root> |
Goed, stel nu dat ik in example een extra item (child) wil toevoegen. Nou weet ik dat dit gaat met:
$xml_obj->header->example->addChild('value');
Echter weet ik wel altijd de naam van het element wat ik moet toevoegen en het parent element daarvan, in dit geval <header>, maar ik wil dynamisch dingen kunnen toevoegen. Dus wanneer ik zeg:
add_child_to('example', 'value'); dat die dan zelf bepaald dat dit in header->example staat, dus dat wanneer ik alleen 'example' meegeef aan de functie, dat er dan onderstaande gebeurt.
$xml_obj->header->example->addChild('value');
Ik kan evt. ook een array meegeven aan de functie, met daarin de parents in juiste volgorde (in dit geval array('header','example');) maar ook dan lukt het me niet om dit dynamisch te doen. Komt er nog een 3e parent bij dan moet deze automatisch zo worden opgemaakt dat er onderstaande komt:
$xml_obj->header->example->eenderde_element->addChild('value');
Hopelijk snapt iemand wat ik bedoel, ik weet het even niet.