PHP XML添加新条目

时间:2009-12-15 05:11:16

标签: php xml

如何编辑xml文件并在<结尾处添加新条目? / user> ?

我的xml(filezilla)看起来像

<FileZillaServer>
<Users>
<User Name="test">
</User>
/* using php to add another users on here <User Name="test2" */
</Users>
</FileZillaServer>

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

您可以使用DOMDocument类来操作XML文档。

例如,您可以使用以下内容:

$str = <<<XML
<FileZillaServer>
    <Users>
        <User Name="test">
        </User>
    </Users>
</FileZillaServer>
XML;

$xml = DOMDocument::loadXML($str);
$users = $xml->getElementsByTagName('Users');

$newUser = $xml->createElement('User');
$newUser->setAttribute('name', 'test2');
$users->item($users->length - 1)->appendChild($newUser);

var_dump($xml->saveXML());

哪能得到你:

string '<?xml version="1.0"?>
<FileZillaServer>
    <Users>
        <User Name="test">
        </User>
    <User name="test2"/></Users>
</FileZillaServer>
' (length=147)

即。你:

  • 创建新的User元素
  • 您设置了name属性
  • 并将新元素追加到Users

(可能有其他方法可以做到这一点,避免使用length;但这是我第一次想到的 - 早上很早^^)

答案 1 :(得分:0)

使用SimpleXML。顾名思义,这是处理XML文档的最简单方法。

$FileZillaServer = simplexml_load_string(
    '<FileZillaServer>
        <Users>
            <User Name="test" />
        </Users>
    </FileZillaServer>'
);

$User = $FileZillaServer->Users->addChild('User');
$User['Name'] = 'Test2';

echo $FileZillaServer->asXML();