PHP给XML添加数据


PHP #xml #domdocument2014-04-15 22:22
xml文件

<?xml version="1.0" encoding="utf-8" ?>
<AllData>
<xueshengmen>
<xuesheng>
  <name>张三</name>
  <yuwen>80</yuwen>
  <shuxue>90</shuxue>
  <yingyu>70</yingyu>
</xuesheng>
<xuesheng>
  <name>李四</name>
  <yuwen>60</yuwen>
  <shuxue>90</shuxue>
  <yingyu>75</yingyu>
</xuesheng>
</xueshengmen>
</AllData>


以上文件stu.xml提供了部分学生数据。

现在需要在每个xuesheng的节点里面添加一个zongfen的属性并且它的值等于yuwen+shuxue+yingyu的值
如下所示:


<?xml version="1.0" encoding="utf-8" ?>
<AllData>
<xueshengmen>
<xuesheng>
  <name>张三</name>
  <yuwen>80</yuwen>
  <shuxue>90</shuxue>
  <yingyu>70</yingyu>
  <zongfen>240</zongfen>
</xuesheng>
<xuesheng>
  <name>李四</name>
  <yuwen>60</yuwen>
  <shuxue>90</shuxue>
  <yingyu>75</yingyu>
  <zongfen>2225</zongfen>
</xuesheng>
</xueshengmen>
</AllData>


用php来实现:


<?php
$doc = new DOMDocument();
$doc->load( ‘stu.xml’ );
  $students = $doc->getElementsByTagName( “xuesheng” );
  foreach($students as $stu){
  $yuwen = $stu->getElementsByTagName( “yuwen” )->item(0)->nodeValue;
  $shuxue = $stu->getElementsByTagName( “shuxue” )->item(0)->nodeValue;
  $yingyu = $stu->getElementsByTagName( “yingyu” )->item(0)->nodeValue;
  $zongfen = $stu->getElementsByTagName( “zongfen” )->item(0)->nodeValue;
  if($zongfen){
   echo “节点已经存在了,不再添加!”; // http://yige.org/
   continue;
  }
  $zongfen = $yuwen+$shuxue+$yingyu;
  $newNode = $doc->createElement(“zongfen”,$zongfen);
  $stu->appendChild($newNode);
  }
 $result = $doc->saveXML(‘stu.xml’);


相关文章

粤ICP备11097351号-1