PHP addChild到列表顶部?

时间:2011-11-16 02:47:02

标签: php html css xml

我正在使用下面的脚本将输入字段中的文本添加到XML文件中。我很困惑在列表顶部添加一个项目,也许是firstChild?因为当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());
}
?>

这就是我希望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>

1 个答案:

答案 0 :(得分:0)

这里是带有答案的类似问题的链接

How to prepend a child in Simple XML

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());
 }