我有一个 XML 文件 test.xml
<?xml version="1.0"?>
<info>
<user>
<name>
<firstname>FirstName</firstname>
<lastname>Last Name</lastname>
<nameCoordinate>
<xName>125</xName>
<yName>20</yName>
</nameCoordinate>
</name>
</user>
</info>
我正在尝试在表单提交上使用 PHP 更新节点 xName 和 yName。因此,我使用 simplexml_load_file() 加载了该文件。 PHP 表单操作代码如下
<?php
$xPostName = $_POST['xName'];
$yPostName = $_POST['yName'];
//load xml file to edit
$xml = simplexml_load_file('test.xml');
$xml->info->user->name->nameCoordinate->xName = $xPostName;
$xml->info->user->name->nameCoordinate->yName = $yPostName;
echo "done";
?>
我想更新节点值,但上面的代码似乎不正确。谁能帮我纠正一下吗??
更新:
我的问题有点类似于这个使用 PHP 更新 XML 文件 https://stackoverflow.com/questions/171539/updating-a-xml-file-using-php但在这里,我从外部文件加载 XML,并且更新元素,而不是属性。这就是我的困惑所在。
您没有访问正确的节点。在你的例子中,$xml
保存根节点<info/>
。这里有一个很棒的提示:始终在其根节点之后命名保存 XML 文档的变量,它将防止这种混乱。
另外,正如 Ward Muylaert 指出的那样,您需要保存文件。
这是更正后的示例:
// load the document
// the root node is <info/> so we load it into $info
$info = simplexml_load_file('test.xml');
// update
$info->user->name->nameCoordinate->xName = $xPostName;
$info->user->name->nameCoordinate->yName = $yPostName;
// save the updated document
$info->asXML('test.xml');
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)