PHP将子项添加到列表的顶部?

PHP将子项添加到列表的顶部?,php,html,css,xml,Php,Html,Css,Xml,我正在使用下面的脚本将文本从输入字段添加到XML文件。我对在列表顶部添加一个项目感到困惑,也许是第一个孩子?因为每当PHP从输入字段发布文本时,它都会将其添加到XML树的底部,因此是否有必要将其作为树上的第一项 <?php if ($_POST['post']) { $xml = simplexml_load_file('feed.xml'); $item = $xml->channel->addChild('item'); $item->addChild('title

我正在使用下面的脚本将文本从输入字段添加到XML文件。我对在列表顶部添加一个项目感到困惑,也许是第一个孩子?因为每当PHP从输入字段发布文本时,它都会将其添加到XML树的底部,因此是否有必要将其作为树上的第一项

<?php

if ($_POST['post']) {
$xml = simplexml_load_file('feed.xml');
$item = $xml->channel->addChild('item');
$item->addChild('title', htmlspecialchars($_POST['post']));


file_put_contents('feed.xml', $xml->asXML());
}
?>
channel->addChild('item');
$item->addChild('title',htmlspecialchars($_POST['POST']);
文件内容('feed.xml',$xml->asXML());
}
?>
下面是我希望XML的外观

<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <item>
            <title>Item 3</title>
        </item>
        <item>
            <title>Item 2</title>
        </item>
        <item>
            <title>Item 1</title>
        </item>
    </channel>
</rss>

项目3
项目2
项目1

此处是类似问题的链接,并给出答案


不要相信可以使用simplexml指定插入位置。但是对于完整的DOM,您可以使用
insertBefore()
在子列表的顶部插入一个节点。那么insertBefore()会替换addChild吗?不会。DOM有appendChild用于在后面(或末尾)添加。它们都插入节点,但在不同的位置插入新节点。好的,我明白你们的意思了。但由于某种原因,在我的情况下它不起作用。仍然将子项添加到上一个子项的下方。。。
class my_node extends SimpleXMLElement
{
    public function prependChild($name)
    {
        $dom = dom_import_simplexml($this);

        $new = $dom->insertBefore(
            $dom->ownerDocument->createElement($name),
            $dom->firstChild
        );

        return simplexml_import_dom($new, get_class($this));
    }
}

if ($_POST['post']) {
$xml = simplexml_load_file('feed.xml');
$item = $xml->channel->prependChild('item');
$item->addChild('title', htmlspecialchars($_POST['post']));
file_put_contents('feed.xml', $xml->asXML());
 }