一个简单的程序来CRUD节点和XML文件的节点值

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

我的XML文件就像

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

任何人都可以build议我一个简单的PHP脚本来读取,编辑,添加和删除节点和节点值?

2 Solutions collect form web for “一个简单的程序来CRUD节点和XML文件的节点值”

如果您的XML非常简单,那么您可以使用SimpleXML来删除它。 SimpleXml将把XMLparsing成SimpleXmlElements的树结构。 简而言之,您可以像这样使用它:

 // 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'); 

有关更多用法示例和API说明,请参阅PHP手册。

在旁注中,如果你真的只有键/值对,你也可以使用普通的旧PHP数组来存储它们,或者像DBA或者APC和memcached这样的键/值存储器。

您可以使用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 } 

你可以试试上面的例子http://www.zorba-xquery.com/html/demo#BJ2a2bNxJc8JVZAl0qyjAelwN9s=

有关如何安装XQuery PHP扩展的说明,请参见http://www.zorba-xquery.com/html/entry/2011/12/27/PHP_Meets_XQuery

  • 在这里获取XElement的行号
  • XPath获取没有父节点的所有子节点(元素,注释和文本)
  • Android XML布局参数不能按预期的方式运行
  • 如何从另一个XML文件dynamic更新XML文件?
  • 你如何比较两个XML文档?
  • InflateException:二进制XML文件行#1:由于OutOfMemoryError引起的类错误
  • 使用xml定义制作三angular形形状?
  • 使用curl命令行发送/发布xml文件
  • 如何在DTD和XSD之间进行select
  • Android如何使点击时突出显示?
  • 使用XPath,如何根据文本内容和属性值来select一个节点?