pta*_*mzz 13 php xml simplexml
我有一个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>
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用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";
?>
Run Code Online (Sandbox Code Playgroud)
我想更新节点值,但上面的代码似乎不正确.任何人都可以帮我纠正吗?
更新:我的问题有点类似于使用PHP更新XML文件但在这里,我从外部文件加载XML,我也在更新元素,而不是属性.这就是我的困惑所在.
Jos*_*vis 31
您没有访问正确的节点.在您的示例中,$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');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
32293 次 |
| 最近记录: |