Firefox搭配Firebug在web法度设计中,可谓是“双剑合壁”,功能强大,本文只是拔取了此中的一些技能予以介绍,更多的请参考Firebug官方网站的介绍。
既然人生,具有一切乐趣的全部人生,在我面前敞开来,又何必在这个狭小的,闭塞的柜子里斗争和劳作呢??
一个老婆没有办法把丈夫拴在身边,那是做女人的失败。???? 搞了几天php 处理惩罚xml 文件,终于有点头绪,记录下来分享一下。
simplexml
是php
处理惩罚xml
文件的一个办法,另一个是dom
处理惩罚,这里只说simplexml
。
今朝php
处理惩罚xml
用的斗劲多,斗劲成熟的还是dom
。但dom
在速度和代码量上还是斗劲受人诟病的。
simplexml 的有些函数须要斗劲高版本的php ,建议是php5.2 以上。
一,新建xml
办法1 (通俗新建文件):
¥fp=fopen(""111.xml"",""w""); ¥xmlContent=""<?xml version="1.0" encoding="utf-8" ?> ""; ¥xmlContent.=""<navlist>""; ¥xmlContent.=""<nav id="1">""; ¥xmlContent.=""<name>我我我</nname> ""; ¥xmlContent.=""<color>#000000</ncolor> ""; ¥xmlContent.=""</nav>""; ¥xmlContent.=""<nav id="2">""; ¥xmlContent.=""<name>你你你</nname> ""; ¥xmlContent.=""<color>#ffffff</ncolor> ""; ¥xmlContent.=""</nav>""; ¥xmlContent.=""<nav id="3">""; ¥xmlContent.=""<nname>他他他</nname> ""; ¥xmlContent.=""<ncolor>#cccccc</ncolor> ""; ¥xmlContent.=""</nav>""; ¥xmlContent.=""</navlist>""; fwrite(¥fp,¥xmlContent); fclose(¥fp);
?
?
?
?
办法2 (应用simplexml 新建):
¥fp=fopen(111.xml"",""w""); ¥xmlContent=""<?xml version="1.0" encoding="utf-8" ?><navlist></navlist>""; fwrite(¥fp,¥xmlContent); fclose(¥fp); ¥xml=simplexml_load_file(""111.xml""); ¥app=¥xml->addChild(""nav""); ¥app->addAttribute(""id"","1"); ¥app->addChild(""name"",""我我我""); ¥app->addChild(""color"",""#000000""); ¥app=¥xml->addChild(""nav""); ¥app->addAttribute(""id"","2"); ¥app->addChild(""name"",""你你你""); ¥app->addChild(""color"",""#ffffff); ¥app=¥xml->addChild(""nav""); ¥app->addAttribute(""id"","3"); ¥app->addChild(""name"",""他他他""); ¥app->addChild(""color"",""#cccccc); ¥xml->asXML(""111.xml"");
?
?
可以看到第一种办法其实只是通俗的写入文件,第二种办法才是应用simplexml 新建xml 文件,但为什么我要把第一种通俗办法放前面呢?因为本人测试了一下两种办法的运行时候,发明第一种办法应用的时候更少,所以建议应用通俗的新建文件办法新建xml 文件就行了!
新建的文件布局如下:
<?xml version="1.0" encoding="utf-8"?> <navlist> <nav id="1"> <name>我我我</nname> <color>#000000</ncolor> </nav> <nav id="2"> <name>你你你</nname> <color>#ffffff</ncolor> </nav> <nav id="3"> <name>他他他</nname> <color>#cccccc</ncolor> </nav> </navlist>
?
?
二,读取xml
??
if(¥xml=simplexml_load_file(""111.xml"")){ foreach(¥xml->nav as ¥list){ ¥value[]=get_object_vars(¥list); } }else{ echo(""load xml error!""); }
?
get_object_vars 函数是把对象转化为数组,如许¥value 就是一个Php 的通俗数组了,大师可以print_r 一下这个数组,Php 数组的读取就不消我说了吧。
三,批改xml
1 ,新建节点
¥xml=simplexml_load_file(""111.xml""); ¥app=¥xml->addChild(""nav""); ¥app->addAttribute(""id"","4"); ¥app->addChild(""name"",""它它它""); ¥app->addChild(""color"",""#000000""); ¥xml->asXML(111.xml"");
?
将追加作为最后一个节点
?
2 ,批改节点
¥xml=simplexml_load_file(""111.xml""); ¥xg=¥xml->xpath("/navlist/nav[@id=‘3’]"); ¥xg[0]->name="他啊他啊"; ¥xg[0]->color="#444444"; ¥xml->asXML(111.xml"");
?
批改了nav 属性id 为3 的节点
?
3 ,删除节点
删除节点用unset 函数就行,但要删除指定节点斗劲麻烦,删除指定节点只能应用节点的索引值。
比如删除第二个节点(id 为2 的) :
¥xml=simplexml_load_file(""111.xml""); unset(¥xml->nav[1]); ¥xml->asXML(111.xml"");
?
?
索引从0 开端,所以第二个节点的索引是1 。
若是想经由过程指定的属性删除,则须要轮回所有节点获取指定属性的节点索引
如下:
¥xml=simplexml_load_file(""111.xml""); ¥i=0; foreach(¥xml as ¥dup){ ¥sc=¥dup->attributes(); if(¥sc[""id""]==2){ unset(¥xml->nav[¥i]); } ¥i++; } ¥xml->asXML(""111.xml"");
?
?
?
四,删除xml 列夫托尔斯泰
if(file_exists(""111.xml"")){ unlink(""111.xml""); }
?