我需要在XML文件中向已经存在的用户添加信息


session_start();
$xml = simplexml_load_file('Gebruikers.xml');
$gebruiker = $xml->xpath('root[Login="'.$_SESSION['Login'].'"]');
$coordinates = $gebruiker[0]->addChild('coordinates');
$coordinates->addChild("X",$_GET["X"]);
$coordinates->addChild("Y",$_GET["Y"]);
file_put_contents('Gebruikers.xml', $xml->asXML());

xml文件

<root>
    <gebruiker>
        <Login>Tom</Login>
        <Wachtwoord>123</Wachtwoord>
    </gebruiker>
</root>

得到这些错误:

  • 注意:C:xampphtdocsTomProject PHPProjectPHP_HTMLCoordinaten.php中的未定义偏移量:0
  • 致命错误:在C:xampphtdocsTomProject PHPProjectPHP_HTMLCoordinaten.php中的非对象上调用成员函数addChild()

我被卡住了…

$gebruiker的xpath是错误的,请这样做:

$gebruiker = $xml->xpath('gebruiker[Login="'.$_SESSION['Login'].'"]');

你做了什么…

... xpath('root[Login="'.$_SESSION['Login'].'"]');

表示:在<root>下面找到一个值为$_SESSION['login']<login>节点,但没有该节点,它在<gebruikers>下面。

BTW,而不是file_put_contents('Gebruikers.xml', $xml->asXML());

你可以做$xml->asXML('myfile.xml');

查看它的工作情况:http://codepad.viper-7.com/9p2MYb

最新更新