您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

PHP操作XML文件学习笔记

2025/7/26 10:53:03发布23次查看
对于xml的操作包括遍历,生成,修改,删除等其他类似的操作。php对于xml的操作方式很多,这次学习的是通过domdocument进行操作,其他的操作方法可以参考 http://www.oschina.net/code/snippet_110138_4727 1.对xml文件的遍历 通过domdocument对于xml文件的操
对于xml的操作包括遍历,生成,修改,删除等其他类似的操作。php对于xml的操作方式很多,这次学习的是通过domdocument进行操作,其他的操作方法可以参考
http://www.oschina.net/code/snippet_110138_4727
1.对xml文件的遍历
通过domdocument对于xml文件的操作的方法:首先要实例化一个domdocument类的对象,然后引入要操作的xml文件。即:
1 $doc = new domdocument();2 $doc->load(test.xml);
xml version=1.0 encoding=utf-8 ?>school> student> name>张三name> sex>男sex> age>19age> student> student> name>李四name> sex>女sex> age>18age> student> student> name>王五name> sex>男sex> age>19age> student>school>
1 $content = $doc->getelementsbytagname(student);2 foreach($content as $value){3 echo $value->nodevalue.
;4 }
注意:在遍历xml文件的时候,要注意的一个问题就是编码的问题,如果xml文件的encoding为utf-8,那么xml文件的文件编码也必须是utf-8,可以通过文本编辑器将文件另存为和xml的encoding相同的文件编码即可。否则在遍历的时候会报错或者出现乱码。
2.生成xml文件
在生成xml文件的时候,是通过domdocument类中的方法来创建各个节点和节点内容的。我通过查询数据库,并将数据库中的信息生成xml文件方法如下:
1 include database.php; //导入连接数据库文件 2 $query = mysql_query(select * from test); 3 4 //操作xml准备 5 $doc = new domdocument(1.0,utf-8); 6 7 //通过createelement方法为xml文件创建节点 8 //创建根节点 9 $school= $doc->createelement(school);10 //11 //将根节点添加到xml文件中12 $doc->appendchild($school);13 14 //创建student节点15 $student= $doc->createelement(student);16 //将student节点添加到school节点下17 $school->appendchild($student);18 19 $nameinfo = array(); //20 $sexinfo = array(); //21 $ageinfo = array(); //22 $idinfo = array(); //对应xml文件中属性id的值23 $i = 0; //控制变量i24 25 while($row=mysql_fetch_array($query)){26 //27 //查询数据库信息并赋值给相应的数组28 $nameinfo[$i] = $doc->createtextnode($row[name]);29 $sexinfo[$i] = $doc->createtextnode($row[sex]);30 $ageinfo[$i] = $doc->createtextnode($row[age]);31 $idinfo[$i] = $doc->createtextnode($i);32 $i++;33 }34 35 for($i=0;$icount($nameinfo);$i++){36 $name = $doc->createelement(name);37 $sex = $doc->createelement(sex);38 $age = $doc->createelement(age);39 //40 $id = $doc->createattribute(id);41 42 //43 $student->appendchild($name);44 $student->appendchild($sex);45 $student->appendchild($age);46 $student->appendchild($id);47 48 //49 $name->appendchild($nameinfo[$i]);50 $sex->appendchild($sexinfo[$i]);51 $age->appendchild($ageinfo[$i]);52 $id->appendchild($idinfo[$i]);53 }54 55 //通过save方法将生成的xml文件保存56 $doc->save(test.xml);
注意:在生成xml文件的时候同样应该注意编码问题,除了xml文件编码和xml指定编码应当一致以外,在连接数据库的时候还应该注意xml指定的编码应该和数据库的编
3.xml文件的修改和删除
1 $doc= new domdocument(); 2 $doc->load(test.xml); 3 4 // 5 $students = $doc->getelementsbytagname(student); 6 7 //遍历$students,将每个student的信息存为$student 8 foreach($students as $student){ 9 //通过getattribute获取指定属性的值10 11 if($student->getattribute(id)==2){12 $content = $doc->getelementsbytagname(name)->item(0)->nodevalue = kenticny;13 }14 //15 if($student->getattribute(id)==1){16 //17 18 $student->parentnode->removechild($student);19 }20 21 }22 //保存修改的xml文件 23 $doc->save(test.xml);
操作。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product