所以我有一个显示XML文件数据的网页。但是,我有一个表格,理想情况下应该能够更改数据。我认为实现这一目标的最佳方法是在PHP中使用Fopen函数并编辑特定的Text行。字符串不会长,最多4个字。我如何使用打开,读取和写入文件的fopen和一系列函数来查找代码行并替换它?
答案 0 :(得分:1)
我认为你应该做以下事情:
将HTML中输入标记的名称与XML中的节点相匹配(这只是建议让您的代码更有条理)
当您将数据发回服务器时,在您的Php代码中,使用SimpleXML,您可以执行以下操作
提供以下XML文件
<root>
<config id="1">
<name>old name</name>
<category>old category</category>
</config>
<config id="2">
<name>old name</name>
<category>old category</category>
</config>
</root>
//Load the XML file
$xml = simplexml_load_file('PATH TO YOUR XML FILE');
//Update the values that you want to update
foreach($xml->root->config as $configGroup)
{
//Set the $IdToUpdate variable with the Id of the group that you want to update.
if ($configGroup['id'] == $IdToUpdate)
{
$configGroup->name = $_POST['name' . $IdToUpdate];//Your html must have the proper input names.
break;
}
}
//Save the changes
$xml->asXml('PATH TO YOUR XML FILE');
希望这有帮助
答案 1 :(得分:0)
你可能想从这里开始: http://www.php.net/manual/en/refs.xml.php
听起来你需要做几件事。
i)将xml解析为对象或数组。
ii)找到您想要更新的元素。
iii)更新所述元素后,将xml写回文件。
答案 2 :(得分:0)
好的,我的问题的答案非常简单。如果你像我一样,基本上是PHP编程的新手然后功能,这可能会变得非常棘手,或者至少对我来说。当您使用XML中的数据时,每个标记基本上都成为一个数组。
<configure id="firstblock">
<name>Name</name>
<category>Old</category>
</configure>
<configure id="second block">
<name>Name2</name>
<category>New</category>
</configure>
请注意configure的行为类似于数组。
$xml = SimpleXML_load_file('location of xml file here');
$xml->configure[0]->color = $_POST['name1'];
$xml->configure[0]->category = $_POST['category'];
$xml->configure[1]->name =$_POST['name2'];
$xml->configure[1]->category =$_POST['category2'];
$xml->asXml('location of xml file here');