我有一个 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";
?>
我想更新节点值,但上面的代码似乎不正确。谁能帮我改一下??
更新: 我的问题有点类似于这个 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');
关于php - 使用 PHP 更新 XML 节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4748014/