【发布时间】:2011-11-16 02:47:01
【问题描述】:
我正在使用下面的脚本将输入字段中的文本添加到 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>
【问题讨论】:
-
不要相信你可以用simplexml指定插入位置。但是对于完整的 DOM,您可以使用
insertBefore()在子列表顶部插入一个节点。 -
那么 insertBefore() 会替换 addChild 吗?
-
没有。 DOM 有 appendChild 用于在之后(或末尾)添加。它们都插入节点,但在不同的位置插入新节点。