介绍
这篇文章给大家介绍如何在PHP中利用原生DOM对象对XML进行操作,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
<强>一、创建强>
创建一个新的XML文件,并且写入一些数据到这个XML文件中。
/* ,*创建xml文件 ,*/, $ info =,阵列( ,阵列(& # 39;obj # 39;,=祝辞,& # 39;权力# 39;,& # 39;信息# 39;,=祝辞,& # 39;power is 关闭# 39;), ,阵列(& # 39;obj # 39;,=祝辞,& # 39;memcache # 39;, & # 39;信息# 39;,=祝辞,& # 39;memcache used than & # 39; 90%), ,阵列(& # 39;obj # 39;,=祝辞,& # 39;cpu # 39;, & # 39;信息# 39;,=祝辞,& # 39;cpu used than & # 39; 95%), ,阵列(& # 39;obj # 39;,=祝辞,& # 39;磁盘# 39;,& # 39;信息# 39;,=祝辞,& # 39;disk is 删除# 39;) );//用来写入的数据 , $ dom =, new DOMDocument (& # 39; 1.0 & # 39;); 时间=美元dom→formatOutput 真实;//格式化 , 美元$ eventList =, dom→createElement (& # 39; EventList& # 39;);//创建根节点EventList dom→美元列表末尾($ eventList);//添加根节点 , ($小姐:=,0;,美元小姐:& lt;, count ($ info);,我+ +美元){ 美元,美元event =, dom→createElement(& # 39;事件# 39;);//创建节点事件 美元,美元text =, dom→createTextNode (& # 39; php # 39; $ i);//创建文本节点,值为PHP0, PHP1…… 美元,美元事件→列表末尾(文本);//将文本节点添加到节点事件,做为节点事件的值 , 美元,美元attr_obj =, dom→createAttribute (& # 39; obj # 39;);//创建属性obj 美元,attr_obj→value =,美元信息[$ i] [& # 39; obj # 39;];//为obj属性赋值 美元,事件→列表末尾($ attr_obj);//将obj属性添加到事件节点中,做节为事件点的属性 , 美元,美元attr_info =, dom→createAttribute(& # 39;信息# 39;); 美元,attr_info→value =,美元信息[$ i][& # 39;信息# 39;]; 美元,事件→列表末尾($ attr_info); , 美元,美元eventList→列表末尾(事件);//将事件节点添加到根节点eventList中 } ,//echo dom→美元saveXML (); dom→美元拯救(& # 39;。/t.xml& # 39;);//保存信息到当前目录下的t.xml文件中
上面的代码段可以创建一个XML文件,并添加一些信息到这个文件中,包括值和属性,最终形成的文件为当前目录下的t。xml,可以看一下它的内容。
& lt; ? xml version=?.0“?比; & lt; EventList> ,& lt; event  obj=皃ower",信息=皃ower is shutdown"祝辞PHP0 ,& lt; event  obj=癿emcache",信息=癿emcache used than 90%“祝辞PHP1 ,& lt; event  obj=癱pu",信息=癱pu used than 95%“祝辞PHP2 ,& lt; event  obj=癲isk",信息=癲isk is removed"祝辞PHP3 & lt;/EventList>
<强>二,读取XML信息,添加新的属性强>
以上一节创建的t.xml文件为操作对象,读取出t。xml文件中的信息,并给节点添加一个新的属性数,其值为1 .
/* ,*读取xml文件信息,并添加新的属性 ,*/, $ dom =, new DOMDocument (& # 39; 1.0 & # 39;); dom→美元负载(& # 39;。/t.xml& # 39;);//加载要操作的文件 美元$ list =, dom→getElementsByTagName(& # 39;事件# 39;);//获取事件节点列的表 foreach (list 美元;as 项目美元){ 美元,美元attr_obj =,项→getAttribute (& # 39; obj # 39;);//获取属性obj的值 美元,美元attr_info =,项→getAttribute(& # 39;信息# 39;); ,echo “& lt; pre>对象:attr_obj美元;信息:attr_info美元;价值:{$项→nodeValue} & lt;/pre>“; ,美元项→setAttribute(& # 39;计数# 39;1);//添加新的属性数=1 } dom→美元拯救(& # 39;。/t.xml& # 39;);//保存修改
<强>看一下提取到的值:强>
对象:权力;信息:power is 关闭;价值:PHP0 , 对象:memcache;信息:memcache used  than 90%;价值:PHP1 , 对象:cpu;信息:cpu used  than 95%;价值:PHP2 , 对象:磁盘;信息:disk is 切除;价值:PHP3
再看一下现在的t。xml文件的内容,属性已经添加上。
& lt; ? xml version=?.0“?比; & lt; EventList> ,& lt; event  obj=皃ower",信息=皃ower is shutdown",数=?“祝辞PHP0 ,& lt; event  obj=癿emcache",信息=癿emcache used than 90%“,数=?“祝辞PHP1如何在PHP中利用原生DOM对象对XML进行操作