php对xml文件进行CURD操作
XML是一种数据存储、交换、表达的标准:
- 交换:可以通过schema实现异构数据集成;
- 表达:本身就可以作为阅读文档,当然还可以使用XSLT之类的进行解析和再显示。
缺点是schema验证复杂,相比后来的json等格式,相对冗余。
下面的是利用php对xml文件进行CURD操作:
xml文件的格式为:
<?xml version="1.0" encoding="utf-8"?>
<config>
<dbmsg type="mysql">
<host>127.0.0.1</host>
<port>3306</port>
<user>root</user>
<password>root123</password>
<db>ksuditest</db>
</dbmsg>
<env>
<testenv>测试环境</testenv>
<projectenv>正式环境</projectenv>
</env>
</config>
1、用三种方法读取xml文件内容:
<?php
/**
* Created by PhpStorm.
* User: xxx
* Date: 2016/11/28
* Time: 9:36
*/
// 使用三种方法来读取xml文件
// 封装获取某一个节点,下面节点的value
function getNodeValue($nodeName,$tagName){
return $nodeName->getElementsByTagName($tagName)->item(0)->nodeValue;
} // ---------------第一种方法-----DOM------------------------
/*
$xmlDoc = new DOMDocument();
// 加载xml文件
$xmlDoc->load('config.xml');
// 获取dbmsg节点
$dbmsg = $xmlDoc->getElementsByTagName('dbmsg')->item(0);
// 打印db的相关信息
echo 'host-->'.getNodeValue($dbmsg,'host')."<br>";
echo 'port-->'.getNodeValue($dbmsg,'port')."<br>";
echo 'user-->'.getNodeValue($dbmsg,'user')."<br>";
echo 'password-->'.getNodeValue($dbmsg,'password')."<br>";
echo 'db-->'.getNodeValue($dbmsg,'db')."<br>";
*/ // ---------------第二种方法--------XPATH---------------------
/*
$xmlDoc = new DOMDocument();
// 加载xml文件
$xmlDoc->load('config.xml');
// 实例化一个DOMXPath对象
$xpath = new DOMXPath($xmlDoc);
// 获取dbmsg节点,使用xpath来查询
$dbmsg = $xpath->query('//dbmsg')->item(0);
// 打印db的相关信息
echo 'host-->'.getNodeValue($dbmsg,'host')."<br>";
echo 'port-->'.getNodeValue($dbmsg,'port')."<br>";
echo 'user-->'.getNodeValue($dbmsg,'user')."<br>";
echo 'password-->'.getNodeValue($dbmsg,'password')."<br>";
echo 'db-->'.getNodeValue($dbmsg,'db')."<br>";
*/
// ---------------第三种方法--------SimpleXML---------------------
$sipleXml = simplexml_load_file('config.xml');
/*
echo 'db type==>'.$sipleXml->dbmsg['type']."<br>";
echo $sipleXml->dbmsg->host."<br>";
echo $sipleXml->dbmsg->port."<br>";
echo $sipleXml->dbmsg->user."<br>";
echo $sipleXml->dbmsg->password."<br>";
echo $sipleXml->dbmsg->db."<br>";
*/
// siplexml配合xpath使用
$dbmsg = $sipleXml->xpath("//dbmsg")[0];
// 打印dbmsg的数据
// 打印dbmsg的属性
echo 'db type==>'.$dbmsg['type']."<br>";
// 打印
echo $dbmsg->host."<br>";
echo $dbmsg->port."<br>";
echo $dbmsg->user."<br>";
echo $dbmsg->password."<br>";
echo $dbmsg->db."<br>";
2、向xml文件中添加:
<?php
/**
* Created by PhpStorm.
* User: xxx
* Date: 2016/11/28
* Time: 11:12
*/
$xmlDoc = new DOMDocument();
$xmlDoc->load("config.xml");
// 根目录
$config = $xmlDoc->getElementsByTagName("config")->item(0);
// 创建testenv节点
$env = $xmlDoc->createElement("env"); // 创建testenv
$testenv = $xmlDoc->createElement("testenv");
$testenv->nodeValue = '测试环境';
$env->appendChild($testenv); // 创建正式环境 projectenv
$projectenv = $xmlDoc->createElement("projectenv");
$projectenv->nodeValue = '正式环境';
$env->appendChild($projectenv); // 挂载env到config节点下
$config->appendChild($env);
// 保存xml文件
$xmlDoc->save('config.xml'); echo "add message success!";
3、更新xml文件:
<?php
/**
* Created by PhpStorm.
* User: xxx
* Date: 2016/11/28
* Time: 10:56
*/
// 更新xml节点的数据 $xmlDoc = new DOMDocument();
$xmlDoc->load("config.xml"); // 修改密码
$xpath = new DOMXPath($xmlDoc);
$pwd = $xpath->query('//password')->item(0);
$pwd->nodeValue = 'root123'; //save xml file
$xmlDoc->save("config.xml");
echo "update message success!";
4、对xml文件进行删除操作:
<?php
/**
* Created by PhpStorm.
* User: xxx
* Date: 2016/11/28
* Time: 13:54
*/
// 删除xml中的节点
$xmlDoc = new DOMDocument();
$xmlDoc->load("config.xml"); // 删除最后一个env节点
$envs = $xmlDoc->getElementsByTagName('env');
// 找到最后一个env节点
$delenv = $envs->item($envs->length-1);
// 移除delenv节点
$delenv->parentNode->removeChild($delenv); // save xml file
$xmlDoc->save("config.xml");
echo 'delete success!';
php对xml文件进行CURD操作的更多相关文章
- 【JAVA使用XPath、DOM4J解析XML文件,实现对XML文件的CRUD操作】
一.简介 1.使用XPath可以快速精确定位指定的节点,以实现对XML文件的CRUD操作. 2.去网上下载一个“XPath帮助文档”,以便于查看语法等详细信息,最好是那种有很多实例的那种. 3.学习X ...
- 【转】C#对XML文件的各种操作实现方法
[转]C#对XML文件的各种操作实现方法 原文:http://www.jb51.net/article/35568.htm XML:Extensible Markup Language(可扩展标记语言 ...
- 【JAVA解析XML文件实现CRUD操作】
一.简介. 1.xml解析技术有两种:dom和sax 2.dom:Document Object Model,即文档对象模型,是W3C组织推荐的解析XML的一种方式. sax:Simple API f ...
- java代码用dom4j解析xml文件的简单操作
时间: 2016/02/17 目标:为telenor的ALU Femto接口写一个采集xml文件并解析出locationName标签里的值,然后更新到数据库中. 从网上搜了下,有四种常用的解析xml的 ...
- XML文件的一些操作
XML 是被设计用来传输和存储数据的, XML 必须含有且仅有一个 根节点元素(没有根节点会报错) 源码下载 http://pan.baidu.com/s/1ge2lpM7 好了,我们 先看一个 XM ...
- xml文件的读写操作
1.直接上代码:包含了xml文档的创建,读取xml文档,创建根节点,向根节点中添加子节点,保存xml文档----------先来张效果图: static void Main(string[] args ...
- Qt5 对xml文件常用的操作(读写,增删改查)
转自:https://blog.csdn.net/hpu11/article/details/80227093 项目配置 pro文件里面添加QT+=xml include <QtXml>, ...
- dom4j解析XML的CURD操作
在开发JavaWeb项目中通常是利用XML配置文件来提高应用程序的访问效率,而在配置XML的同时,更多时候是对XML进行解析. 一.解析XML配置文件有两种机制: DOM和SAX的机制: DOM是将整 ...
- c#操作XML文件的通用方法
转载地址:http://www.studyofnet.com/news/36.html 原址没找到 sing System; using System.Data; using System.Confi ...
随机推荐
- [教程]怎么用百度云观看和下载"磁力链接"无需下载直接观看.
1, 打开网址 http://okbt.net/ 输入你想要看的电影名字, 点搜索,鼠标右键点击拷贝磁力链接.或者 电脑装了迅雷的话.可以直接点击.用迅雷下载. 磁力链接都是这种格式的.例: mag ...
- asp.net identity 2.2.0 在MVC下的角色启用和基本使用(一)
基本环境:asp.net 4.5.2 第一步:在App_Start文件夹中的IdentityConfig.cs中添加角色控制器. 在namespace xxx内(即最后一个“}”前面)添加 角色控制类 ...
- 如何参与一个 GitHub 开源项目?
最近一年开源项目特别的热,很多技术大会或论坛都以开源项目作为主题进行探讨,可见这是一种趋势.而Github作为开源项目的著名托管地,可谓无 人不知,越来越多的个人和公司纷纷加入到Github的大家族里 ...
- 团队项目——站立会议 DAY8
第八次站立会议记录: 参会人员:张靖颜,钟灵毓秀,何玥,赵莹,王梓萱 项目进展: 1.张靖颜:在反复修改和审查后,处理功能模块代码出错处,完善并运行. 2.钟灵毓秀:再次检查代码,运行报错处的代码修改 ...
- C#可扩展编程之MEF学习笔记(二):MEF的导出(Export)和导入(Import)
上一篇学习完了MEF的基础知识,编写了一个简单的DEMO,接下来接着上篇的内容继续学习,如果没有看过上一篇的内容, 请阅读:http://www.cnblogs.com/yunfeifei/p/392 ...
- NanoProfiler - 适合生产环境的性能监控类库 之 基本功能篇
背景 NanoProfiler是一个EF Learning Labs出品的免费性能监控类库(即将开源).它的思想和使用方式类似于MiniProfiler的.但是,设计理念有较大差异. MiniProf ...
- Linux-磁盘管理小结
这篇博文主要总结了Linux磁盘的一些操作,主要是硬盘的加载,分区(MBR分区和GPT分区),分区的挂载,以及swap分区的加载设置. 基础命令 df查看磁盘分区使用状况 -l //仅显示本地磁盘(默 ...
- CentOS Linux系统下安装Redis过程和配置参数说明
转载于:http://www.itxuexiwang.com/a/shujukujishu/redis/2016/0216/102.html?1455869303 安装过程: 代码如下: wget h ...
- Atitit. Api 设计 原则 ---归一化
Atitit. Api 设计 原则 ---归一化 1.1. 叫做归一化1 1.2. 归一化的实例:一切对象都可以序列化/toString 通过接口实现1 1.3. 泛文件概念.2 1.4. 游戏行业 ...
- Jquery实现一组复选框单选
完整代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w ...