php操作xml

<?php
header('content-type:text/html;charset=utf-8');
class Xml {
	/*增*/
	function insert($xml,$data,$dataparent) {
		$dom = new DOMDOcument('1.0', 'utf-8');
		//把文件加载都内存里
		$dom -> load($xml);
		//创建节点
		$goods_name = $dom -> createElement($data['goods_name'], $data['goods_namevalue']);
		$goods_sn = $dom -> createElement($data['goods_sn'], $data['goods_snvalue']);
		//创建父节点
		$goods = $dom -> createElement($dataparent);
		//把创建的节点放到父节点下
		$goods -> appendchild($goods_name);
		$goods -> appendchild($goods_sn);
		//增加的根节点上
		$document = $dom -> documentElement;
		$document -> appendChild($goods);
		//保存文件
		$dom -> save($xml);
	}

	/*删除*/
	function delete($xml,$xmlname,$goods,$num) {
		$dom = new DOMDOcument('1.0', 'utf-8');
		//把文件加载都内存里
		$dom -> load($xml);
		//找到删除的节点
		$goods = $dom -> getElementsByTagName($xmlname) -> item($num);
		//找的删除的父节点
		$document = $dom -> documentElement;
		//删除节点
		$document -> removeChild($goods);
		//保存文件
		$dom -> save($xml);
	}

	/*改*/
	function save($xml,$creatxml,$createvalue,$replace,$parent,$num) {
		$dom = new DOMDOcument('1.0', 'utf-8');
		//把文件加载都内存里
		$dom -> load($xml);
		//创建新节点
		$new = $dom -> createElement($creatxml, $createvalue);
		//找到替换的节点
		$old = $dom -> getElementsByTagName($replace) -> item($num);
		//替换节点
		$parent = $dom -> getElementsByTagName($parent) -> item($num);
		//替换
		$parent -> replaceChild($new, $old);
		//保存文件
		$dom -> save($xml);
	}

	/*查*/
	function select($xml,$xmlname,$num) {
		$dom = new DOMDOcument('1.0', 'utf-8');
		//把文件加载都内存里
		$dom -> load($xml);
		//找到元素的节点
		$goods_name = $dom -> getElementsByTagName($xmlname);
		//获取相应的节点值
		echo $goods_name -> item($num) -> nodeValue;
	}

	/*操作属性*/
	function attr($xml,$xmlname,$attr,$arrtvalue,$num) {
		$dom = new DOMDOcument('1.0', 'utf-8');
		//把文件加载都内存里
		$dom -> load($xml);
		//找到属性的对应标签
		$set = $dom -> getElementsByTagName($xmlname) -> item($num);
		//设置属性的值 如果有原来的属性 就直接重新赋值 没有就重新创建
		$set -> setAttribute($attr, $arrtvalue);
		//保存文件
		$dom -> save($xml);
	}

}

$xml = new xml();
$xml -> insert('index.xml',array('goods_name'=>'goods_name','goods_namevalue'=>'小米','goods_sn'=>'goods_sn','goods_snvalue'=>'8520'),'content');
$xml -> select('index.xml','goods_name',1);
$xml -> attr('index.xml','goods_name','id','8520',0);
$xml -> delete('index.xml','content','goods',0);
$xml -> save('index.xml','manman', 8520,'goods_name','content',0);
/*
 * 经测试没太大的问题 可以直接使用 xml路径记住是相对路径
 * */
<img src="https://img-blog.csdn.net/20160908232650112?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />

<pre name="code" class="html"><?xml version="1.0" encoding="utf-8"?>
<goods>
	<content>
		<manman>8520</manman>
		<goods_sn>771186913</goods_sn>
	</content>
	<content>
		<goods_name id="8520">小米</goods_name>
		<goods_sn>771186913</goods_sn>
	</content>
	<content>
		<goods_name>小米</goods_name>
		<goods_sn>771186913</goods_sn>
	</content>
	<content>
		<goods_name>小米</goods_name>
		<goods_sn>771186913</goods_sn>
	</content>
	<content>
		<goods_name>小米</goods_name>
		<goods_sn>8520</goods_sn>
	</content>
	<content>
		<goods_name>小米</goods_name>
		<goods_sn>8520</goods_sn>
	</content>
	<content>
		<goods_name>小米</goods_name>
		<goods_sn>8520</goods_sn>
	</content>
	<content>
		<goods_name>小米</goods_name>
		<goods_sn>8520</goods_sn>
	</content>
	<content>
		<goods_name>小米</goods_name>
		<goods_sn>8520</goods_sn>
	</content>
</goods>







 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值