最简单的xml操作方式!

$file='test.xml';
if(!file_exists($file)){
	file_put_contents($file,'<?xml version="1.0" encoding="utf-8"?><result/>');
}

$xml = simplexml_load_file($file);
$lottery = $xml->addChild('lottery','http://www.178cpw.com');//增加节点lottery 并给节点加内容
$lottery['name'] = '双色球';//给节点属性赋值
$lottery['name2'] = '大乐透';
$lottery['name3'] = '十一运夺金';
$xml->asXML($file);

/**
 * 判断属性在xml是否存在,如果存在返回节点,不存在返回false
 */
function hasLotteryType($name, $xml) {
	$bool = false;
	foreach ($data as $k => $v) {
		if ($v['name'] == $name) {
			$bool = $v;
			break;
		}
	}
	return $bool;
}


/**
 *  生成所有开奖XML
 *  @param  string   $sign	     彩票标识
 *  @param  string   $issue	     开奖期号
 *  @param  datetime $time	     开奖时间
 *  @param  string   $code	     开奖号码
 *  @param  string   $ball	     出球顺序/试机号
 */
function set_all_xml($sign,$issue,$time,$code,$ball = '') {
	if(empty($sign) || empty($issue) || empty($time) || (empty($code) && empty($ball))) return false;

	$file = 'file.xml';
	if (!file_exists($file) || filesize($file) <= 0) {
		file_put_contents($file,'<?xml version="1.0" encoding="gbk"?><caipiao></caipiao>');
	}

	$DOM = new DOMDocument('1.0','gbk');
	$DOM->load($file);
	$root  = $DOM->documentElement;
	$first = $root->firstChild;
	if (empty($first) || $first->getAttribute('qishu') < $issue) {
		$index = $DOM->createElement('index');
		addAttribute($DOM, $index, 'qishu', $issue);
		addAttribute($DOM, $index, 'date', $time);
		addAttribute($DOM, $index, 'code', $code);
		switch($sign){
			case 'ssq':
			case 'qlc':
			case '15x5':
			case 'cjdlt':
			case '22x5':
				addAttribute($DOM, $index, 'codeOrder', $ball);
				break;
			case 'f3d':
				addAttribute($DOM, $index, 'sjh', $ball);
				break;
		}
		$root->insertBefore($index,$first);
		return $DOM->save($file) ? true : false;
	} else {
		return true;
	}
}

# 新建节点属性并赋值
function addAttribute($dom, $node, $name, $text) {
	$attribute = $dom->createAttribute($name);
	$attribute->appendChild($dom->createTextNode($text));
	$node->appendChild($attribute);
}

为了再第一个节点之前插入,只能用第二种么

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值