加载到表单中后保存XML文件并进行编辑

时间:2019-05-21 13:40:40

标签: php xml

我创建了这个PHP脚本,用于将XML文件的内容加载到表单中,但是在修改字段后无法保存它。
我想知道是否有可能做到这一点,以及如何做到。 谢谢毛。

<form name="form" method="post" action="">
    <?php
    if (file_exists('data/mess.xml')) {
        $xml = simplexml_load_file('indexdata/index_messages_en.xml');
        foreach ($xml->data as $el) {
            echo "<label for='{$el}'>{$el['name']}</label>
          <input name='{$el['name']}' value='{$el}'/><br>";
        }
    } else {
        exit('Failed to open');
    }
    ?>
    <input type="submit" name="submit" id="submit" value="Update">
</form>
<?php
    if (isset($_POST['submit'])) {
        // method for save edited field in same xml file
    }
?>

我的mess.xml文件:

<?xmlversion = "1.0"encoding = "UTF-8"?>
<project>
    <data name="project_title">
        <![CDATA[New Project]]></data>
    <data name="section_title">
        <![CDATA[ES000021903]]></data>
</project>

1 个答案:

答案 0 :(得分:0)

当然可以,您需要重写文件以将更改从一个编辑更改为另一个。

查看file_put_contentsfopen

当然,您必须使用标签和属性重写整个XML。您可以使用简单的字符串来完成此操作:

$myxml='
<?xmlversion = "1.0"encoding = "UTF-8"?>
<project>
    <data name="project_title">
        <![CDATA['.$_POST['project_title'].']]></data>
    <data name="section_title">
        <![CDATA['.$_POST['section_title'].']]></data>
</project>';

或者通过用SimpleXMLElement创建一个新的$_POST并将其转换为字符串,如this answer here中所述。