两种PHP操作处理XML文件的方法:
首先是xml文件:
<?xml version="1.0" encoding="UTF-8"?> <students> <student> <name>八阿哥</name> <age>20</age> <sex>男</sex> <qq>132543254</qq> </student> <student id="meimei"> <name>你妹妹</name> <age>18</age> <sex>女</sex> <qq>8967465465</qq> </student> <student> <name>你姐姐</name> <age>20</age> <sex>女</sex> <qq>2543645643</qq> </student> <student> <name>你爸爸</name> <age>50</age> <sex>男</sex> <qq>1968754</qq> </student> <student> <name>ttttt</name> <age>22</age> <sex>女</sex> <qq>957435634</qq> </student> <student> <name>qqqqq</name> <age>21</age> <sex>男</sex> <qq>7645764</qq> </student> </students>PHP操作xml文件第一种方法是通过DOMDocument对象操作的,方法比较复杂:
<?php /*php解析,查看xml文件*/ $dom=new DOMDocument('1.0','utf-8'); /*载入xml文件*/ $dom->load('./aaa.xml'); /*获取子节点*/ $students=$dom->getElementsByTagName('student'); /*获取节点数量*/ $stunum=$students->length; $studentsArray=array(); /*读取直接点数据*/ for($i=0;$i<$stunum;$i++){ $studentsArray[]=array( 'name'=>$students->item($i)->getElementsByTagName('name')->item(0)->nodeValue, 'age'=>$students->item($i)->getElementsByTagName('age')->item(0)->nodeValue, 'sex'=>$students->item($i)->getElementsByTagName('sex')->item(0)->nodeValue, 'qq'=>$students->item($i)->getElementsByTagName('qq')->item(0)->nodeValue, ); } var_dump($studentsArray); /*php增加xml节点*/ $nameNode=$dom->createElement('name','你弟弟'); $ageNode=$dom->createElement('age','23'); $sexNode=$dom->createElement('sex','男'); $qqNode=$dom->createElement('qq','235346'); /*创建父级节点*/ $studentNode=$dom->createElement('student'); /*设置属性:*/ $studentNode->setAttribute('id','9999999'); /*最佳student到students*/ $studentNode->appendChild($nameNode); $studentNode->appendChild($ageNode); $studentNode->appendChild($sexNode); $studentNode->appendChild($qqNode); /*找到根节点*/ $studentsNode=$dom->getElementsByTagName('students')->item(0); $studentsNode->appendChild($studentNode); $dom->save('./aaa.xml'); /*更新节点xml数据*/ /*创建新节点*/ $newNode=$dom->createElement('name','哈哈哈哈'); /*找到旧节点*/ $oldNode=$dom->getElementsByTagName('name')->item(7); /*找到父级节点*/ $studentNode=$dom->getElementsByTagName('student')->item(7); /*修改替换*/ $studentNode->replaceChild($newNode,$oldNode); /*保存*/ $dom->save('./aaa.xml'); /*删除节点*/ $deleteNode=$dom->getElementsByTagName('student')->item(8); /*找到父节点*/ $studentsNode=$dom->getElementsByTagName('students')->item(0); /*删除节点*/ $studentsNode->removeChild($deleteNode); /*保存数据*/ $dom->save('./aaa.xml'); /*获取节点属性*/ $students=$dom->getElementsByTagName('student'); if($students->item(1)->hasAttribute('id')){ echo $students->item(1)->getAttribute('id'); }else{ echo 'dsgdfs'; }第二种是通过simplexml:
<?php /*导入xml文件到内存*/ $xml=simplexml_load_file('./aaa.xml'); /*foreach ($xml->student as $key => $value) { echo $value->name.$value->age.$value->sex.$value->qq.'___'; }*/ // var_dump($xml); // 获取子节点 foreach ($xml->children() as $key => $value) { /*获取属性*/ echo $value['id'].'_attr____'; /*获取值*/ echo $value->name.'_'; echo $value->age.'_'; echo $value->sex.'_'; echo $value->qq.'|||||||'; } /*添加*/ /*创建父节点*/ $student=$xml->addChild('student'); /*添加属性*/ $student->addAttribute('id','xiaoJJ'); $student->addChild('name','小鸡鸡'); $student->addChild('age','12'); $student->addChild('sex','男'); $student->addChild('qq','24364587'); /*保存xml文件*/ $xml->asXML('aaa.xml'); ?>
上一篇:
php获取客户端(系统,浏览器)信息
下一篇:
微信服务号获取openid方法
友情提示:垃圾评论一律封号...