您好,欢迎访问一九零五行业门户网

PHP创建与解析 XML 1 (36)

一.使用simplexml操控xml
要处理xml 文件,有两种传统的处理思路:sax 和dom。sax 基于事件触发机制,对xml 文件进行一次扫描,完成要进行的处理;dom 则将整个xml 文件构造为一棵dom树,通过对dom 树的遍历完成处理。这两种方法各有优缺点,sax 的处理思路相对抽象,dom 的处理过程相对烦琐,都不很适合新手的入门。php5 推出了一套新的xml 处理函数,即simplexml。名如其实,simplexml 本身小巧精干,只提供了少量的几个方法函数,但用它处理起xml 文件功能却非常强大,操作也非常的简单。
1.创建xml文件
$_xml =xml1.0xml解析测试张三http://www.ss.com张三宿舍http://www.ss.com谁谁谁电驴http://www.ss.com姓黄的xml;$_sxe= new simplexmlelement($_xml); //创建对象解析xml字符串$_sxe->asxml('test.xml'); //生成xml文件
2.载入xml文件
$_sxe= simplexml_load_file(test.xml); //载入xml文件var_dump($_sxe); //输出相关信息print_r($_sxe); //输出主要信息reflection::export(new reflectionclass($sxe)); //用反射
3.解析xml文件
$_sxe= simplexml_load_file(test.xml); //载入xml文件var_dump($_sxe); //输出相关信息print_r($_sxe); //输出主要信息reflection::export(new reflectionclass($_sxe)); //用发射echo $_sxe->asxml();//打印整个xml
4.读出xml数据
$_sxe= simplexml_load_file(test.xml);//读取一级节点的值,比如version标签echo $_sxe->version;//如果有多个,可以设置它的数字下标echo $_sxe->version[2];//如果想要全部打印出来,可以用遍历foreach ($_sxe->version as $_version) {echo '['.$_version.']';}//访问二级节点的nameecho $_sxe->user[1]->name;//获取所有二级节点的name值foreach ($_sxe->user as $_user) {echo '['.$_user->name.']';}//获取二级节点的标签的属性echo $_sxe->user[1]->author->attributes();
5.使用xpath来获取节点
$_sxe= simplexml_load_file(test.xml);//使用xpath获取节点信息$_version = $_sxe->xpath('/root/version');echo $_version[1];//遍历versionforeach ($_version as $_v) {echo '['.$_v.']';}//访问二级节点$_user = $_sxe->xpath('/root/user');echo $_user[2]->name;//遍历二级节点foreach ($_user as $_u) {echo '['.$_u->name.']';}//访问属性echo $_user[1]->author->attributes();
二.使用domdocument操控xml
很多情况下,手工生成标记要求从上到下生成文档,必须保证标签都是完整的,开始和结束标签。尽管借助于一些php函数或类可以有所改善,不过php还提供了一组更有帮助的内置对象和函数。文档对象模型(document object model,dom)提供了一个树状结构,能很容易创建和处理标签。
1.domdocument解析xml
//创建一个domdocument()$_doc = new domdocument();//载入xml$_doc->load('test.xml');//取version标签$_version = $_doc->getelementsbytagname('version');echo $_version->item(2)->nodevalue;//遍历version标签foreach ($_version as $v) {echo $v->nodevalue;}
2.domdocument生成xml
//声明xml$_doc = new domdocument('1.0','utf-8');//排版格式$_doc->formatoutput = true;//创建一个主标签$_root = $_doc->createelement('root');//创建一个一级标签version$_version = $_doc->createelement('version');//给version标签里赋值$_versiontextnode = $_doc->createtextnode('1.0');//将值放入version标签里$_version->appendchild($_versiontextnode);//将一级标签version放入root里$_root->appendchild($_version);//将主标签写入xml$_doc->appendchild($_root);//生成xml$_doc->save('aaa.xml');
以上就介绍了php创建与解析 xml 1 (36),包括了方面的内容,希望对php教程有兴趣的朋友有所帮助。
其它类似信息

推荐信息