Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 一个简单的xml文件节点和节点值CRUD程序_Php_Xml - Fatal编程技术网

Php 一个简单的xml文件节点和节点值CRUD程序

Php 一个简单的xml文件节点和节点值CRUD程序,php,xml,Php,Xml,我决定将设置保存在xml文件中,因为字段只接受一个值 我的XML文件如下 <?xml version="1.0" encoding="UTF-8"?> <setting> <setting1>setting1 value</setting1> <setting2>setting2 value</setting2> <setting3>setting3 value</setting3

我决定将设置保存在xml文件中,因为字段只接受一个值

我的XML文件如下

<?xml version="1.0" encoding="UTF-8"?>
<setting>
    <setting1>setting1 value</setting1>
    <setting2>setting2 value</setting2> 
    <setting3>setting3 value</setting3> 
    ....
    ....
    ....
</setting>

设置1值
设置2值
设置3值
....
....
....

有人能给我推荐一个简单的php脚本来读取、编辑、添加和删除节点和节点值吗?

如果您的XML真的那么简单,您可以使用它来CRUD。SimpleXml将把XML解析为SimpleXml元素的树结构。简而言之,您可以这样使用它:

// CREATE
$config = new SimpleXmlElement('<settings/>');
$config->setting1 = 'setting1 value';         
$config->saveXML('config.xml');               

// READ
$config = new SimpleXmlElement('config.xml');
echo $config->setting1;
echo $config->asXml();

// UPDATE
$config->setting1 = 'new value';
$config->setting2 = 'setting2 value';
echo $config->asXml();

// DELETE
unset($config->setting1);
$config->setting2 = NULL;
echo $config->asXML();
unlink('config.xml');
//创建
$config=新的SimpleXmlElement(“”);
$config->setting1='setting1 value';
$config->saveXML('config.xml');
//阅读
$config=newsimplexmlement('config.xml');
echo$config->setting1;
echo$config->asXml();
//更新
$config->setting1='newvalue';
$config->setting2='setting2 value';
echo$config->asXml();
//删除
取消设置($config->setting1);
$config->setting2=NULL;
echo$config->asXML();
取消链接('config.xml');
请参阅PHP手册以了解更多信息


另一方面,如果您真的只有键/值对,您还可以使用a来存储它们,或者使用类似或甚至带有长ttl的键/值存储。

您可以使用PHP XQuery扩展来完成这项工作:

let $data := <setting>
    <setting1>setting1 value</setting1>
    <setting2>setting2 value</setting2> 
    <setting3>setting3 value</setting3> 
</setting>
return {
    (: Update :)
    replace value of node $data/setting1/text() with "Hello World";
    (: Delete :)
    delete node $data/setting2;
    (: Read :)
    $data
}
let$data:=
设置1值
设置2值
设置3值
返回{
(:更新:)
将节点$data/setting1/text()的值替换为“Hello World”;
(:删除:)
删除节点$data/setting2;
(:改为:)
$data
}
你可以尝试上面的例子在现场


有关如何安装XQuery PHP扩展的说明,请访问

+1:该扩展非常棒。