如何在PHP中利用原生DOM对象对XML进行操作

  介绍

这篇文章给大家介绍如何在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进行操作