您的位置:首页 > 其它

最简单的xml操作方式!

2012-09-12 09:46 260 查看
$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);
}

为了再第一个节点之前插入,只能用第二种么
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  xml file encoding