使用PHP的simplexml进行xml文件读写的方法(把xml文件修改后重新写回原文件)

最近需要使用xml进行一些xml文件的操作,参考了一下PHP手册中的simplexml的操作方法:


xml文件如下:


<?xml version="1.0" encoding="iso-8859-1"?>
<Template>
 <PhotoObjects>
  <PhotoObject>
   <id>1</id>
   <name>null</name>
   <x>0.0257937</x>
   <y>0.3936667</y>
   <w>0.2783334</w>
   <h>0.3050000</h>
   <file>1107200917451.jpg</file>
   <panx>0</panx>
   <pany>-0.025772270114943</pany>
   <zoom>28</zoom>
  </PhotoObject>
  <PhotoObject>
   <id>0</id>
   <name>null</name>
   <x>0.6952383</x>
   <y>0.3953333</y>
   <w>0.2788890</w>
   <h>0.3033333</h>
   <file>1107200917471.jpg</file>
 </PhotoObjects>
</Template>

经过如下的处理后(一些变量的值是通过$_GET[]请求发送过来的):

$xml = simplexml_load_file('/example.xml');

foreach($xml->PhotoObjects->PhotoObject as $po)
{
	if ($po->id == $pId) {	//add panx ,pany, zoom 
		$po->addChild('panx', $panx);
		$po->addChild('pany', $pany);
		$po->addChild('zoom', $zoom);
	}	
}
$newXML = $xml->asXML();
$fp = fopen('/example.xml', "w");
fwrite($fp, $newXML);
fclose($fp); 

<?xml version="1.0" encoding="iso-8859-1"?>
<Template>
 <PhotoObjects>
  <PhotoObject>
   <id>1</id>
   <name>null</name>
   <x>0.0257937</x>
   <y>0.3936667</y>
   <w>0.2783334</w>
   <h>0.3050000</h>
   <file>1107200917451.jpg</file>
   <panx>0</panx>
   <pany>-0.025772270114943</pany>
   <zoom>28</zoom>
  </PhotoObject>
  <PhotoObject>
   <id>0</id>
   <name>null</name>
   <x>0.6952383</x>
   <y>0.3953333</y>
   <w>0.2788890</w>
   <h>0.3033333</h>
   <file>1107200917471.jpg</file>
  <panx>-0.034234654234654</panx><pany>0</pany><zoom>35</zoom></PhotoObject>
 </PhotoObjects>
</Template>

因为这里需要重新把xml文件写回对应的文件,需要使用asXML()方法。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值