im trying to make a function that will insert a child element when i tell it with simpleXML i have this function:
function editSitemap ( $map, $path, $node, $value = NULL, $namespace = NULL, $DOM = NULL ) { $xml = $this->Sitemaps[$map]['content']; if ( $namespace != NULL && $DOM == TRUE ) { $sd = dom_import_simplexml($cur); $newNode = $sd->ownerDocument->createElement($node . ':' . $namespace, $value); $newNode = $sd->appendChild($newNode); } elseif ( $path == NULL ) { $xml->addChild( $node , $value, $namespace ); } else { $xml->$path->addChild( $node , $value, $namespace ); } $this->Sitemaps[$map]['content']->asXML($this->Sitemaps[$map]['path']); } so in this i need $xml->$path to be like this: $xml->url[2] when simpleXML uses it when i call: editSitemap( 'compare', 'url[1]', 'loc', 'http://truefoodlooks.com/usercp.php', NULL );
or i need $xml->$path to be like this: $xml->url[2]->loc when simpleXML uses it when i call: editSitemap( 'compare', 'url[1]->loc', 'name', 'user cp', NULL );
Any ideas how to do this?
Thanks Nat
@PaulPRO got it:
function editSitemap ( $map, $path, $node, $value = NULL, $namespace = NULL, $DOM = NULL ) { $xml = $this->Sitemaps[$map]['content']; if ( $path != '' ){ eval('$cur = $xml->'.$path.';'); } else { $cur = $xml; } if ( $namespace != NULL && $DOM == TRUE ) { $sd = dom_import_simplexml($cur); $newNode = $sd->ownerDocument->createElement($node . ':' . $namespace, $value); $newNode = $sd->appendChild($newNode); } else { $cur->addChild( $node , $value, $namespace ); } $this->Sitemaps[$map]['content']->asXML($this->Sitemaps[$map]['path']); }