【发布时间】:2019-11-23 18:11:23
【问题描述】:
我正在尝试编写一个脚本来读取 XML 文件,将其插入表单并使用 php 编辑和更新值。
表单加载当前数据,但不更新它们。
谁能告诉我小费? 谢谢毛里齐奥
文件 XML
<?xml version="1.0" encoding="UTF-8"?>
<myxml>
<data name="en_title"><![CDATA[mytitle]]></data>
<data name="en_scene_title"><![CDATA[ES000021903]]></data>
</myxml>
文件编辑 PHP
<?php
$form_fields = null;
$data = simplexml_load_file('messages_en.xml');
foreach($data->data as $field)
{
$form_fields .= '<div>';
$form_fields .= '<label>' .$field['name'] . ' </label>';
$form_fields .= '<input type="text" id="' .$field['name'] . '"placeholder="'.htmlentities($field).'" name="'.$field. '" />';
$form_fields .= '</div>';
}
?>
<!DOCTYPE html>
<html>
<head>
<style>
form { font-size: 16px; }
form div { margin: .3em; }
legend { font-weight: bold; font-size: 20px; }
label { display:inline-block; width: 140px; }
</style>
</head>
<body>
<form method="POST" action="process.php">
<legend> Enter Contact Information</legend>
<?php echo $form_fields; ?>
<input type="submit" name="submit" value="Upload" class="btn" />
</form>
</body>
</html>
代码文件process.php
<?php
$xml = file_get_contents('messages_en.xml');
$sxml = simplexml_load_string($xml);
if(isset($sxml->item[$_POST['name']])) {
$node->data = $_POST['name'];
}
file_put_contents('messages_en.xml', $sxml->asXML());
?>
【问题讨论】:
-
更好地使用DOMDocument
-
@LarsStegelitz 使用 SimpleXML 没有错。
-
什么是
$node? -
另外,我不熟悉 SimpleXML 但
$sxml不会包含两个data元素的数组吗?