正如已经提到的那样,Simple
XML不支持,所以你必须使用DOM.这是我建议的:扩展SimpleXMLElement与您需要在程序中使用的任何东西.这样,您可以将所有DOM操作和其他XML魔术保留在您的实际程序之外.通过将这两个问题保持分开,可以提高可读性和可维护性.
以下是使用新方法prependChild()扩展SimpleXMLElement的方法:
class my_node extends SimpleXMLElement
{
public function prependChild($name, $value)
{
$dom = dom_import_simplexml($this);
$new = $dom->insertBefore(
$dom->ownerDocument->createElement($name, $value),
$dom->firstChild
);
return simplexml_import_dom($new, get_class($this));
}
}
$actors = simplexml_load_string(
'
Al Pacino
Zsa Zsa Gabor
',
'my_node'
);
$actors->addChild('actor', 'John Doe - last');
$actors->prependChild('actor', 'John Doe - first');
die($actors->asXML());