php – SimpleXML如何在节点中添加一个子节点?

前端之家收集整理的这篇文章主要介绍了php – SimpleXML如何在节点中添加一个子节点?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
当我打电话

addChild(‘actor’,’John Doe’);

这个孩子在最后添加.有没有办法让这个新孩子成为第一个孩子?

正如已经提到的那样,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(
    '<actors>
        <actor>Al Pacino</actor>
        <actor>Zsa Zsa Gabor</actor>
    </actors>','my_node'
);

$actors->addChild('actor','John Doe - last');
$actors->prependChild('actor','John Doe - first');

die($actors->asXML());

猜你在找的PHP相关文章