使用PHP更新XML节点

我有一个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文件,但是在这里,我要从外部文件加载XML,同时还要更新元素而不是属性。那就是我的困惑所在。

回答:

您没有访问正确的节点。在您的示例中,$xml保留根节点<info/>。这里有个很好的提示:

,这样可以避免这种混淆。

另外,正如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更新XML节点 的全部内容, 来源链接: utcz.com/qa/405833.html

回到顶部