【问题标题】:I need to add information to an already existing user in an XML file [closed]我需要向 XML 文件中的现有用户添加信息 [关闭]
【发布时间】:2013-05-18 14:15:56
【问题描述】:
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>

遇到这些错误:

  • 注意:未定义的偏移量:第 6 行 C:\xampp\htdocs\Tom\Project PHP\ProjectPHP_HTML\Coordinaten.php 中的 0
  • 致命错误:在第 6 行的 C:\xampp\htdocs\Tom\Project PHP\ProjectPHP_HTML\Coordinaten.php 中的非对象上调用成员函数 addChild()

我太难了..请帮帮我。

【问题讨论】:

  • 为了获得最佳效果,请在您的帖子中包含一个问题。否则,我们需要尝试推断您的意图,结果并不总是准确的。
  • 你能 var_dump($gebruiker) 吗?您的 xpath 完全有可能什么也没返回。对于示例,不要使用 $_SESSION 尝试对 Tom 进行硬编码,因为这是我们能看到的唯一值
  • 对于这个问题的不清楚的表示,我真的很抱歉,但我只是不确定问题出在哪里,因为我真的不知道你需要什么信息来帮助我。但是可以制作其他“gebruiker”元素,因此我不能硬编码“Tom”,因为如果我使用另一个帐户登录,我需要能够返回另一个值。

标签: php html xml


【解决方案1】:

$gebruiker 的 xpath 错误,改为:

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

你做了什么……

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

意思是:在&lt;root&gt;下面找到一个$_SESSION['login']中的值的&lt;login&gt;节点,但是没有这个节点,它在&lt;gebruikers&gt;下面。

顺便说一句,而不是file_put_contents('Gebruikers.xml', $xml-&gt;asXML());

你可以$xml-&gt;asXML('myfile.xml');

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

【讨论】:

  • 你可能是对的 :)
猜你喜欢
  • 2023-03-14
  • 2017-01-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多