PHP读写XMl文件

Posted on 2010-02-11 00:15  萧木柯  阅读(11617)  评论(0编辑  收藏  举报

    因为当前需要用到XML文件的读写,所以百度了一下,有好几种方法,综合比较,觉得simplexml方法最简单易用,操作很方便,就如他的名字一样。此方法在php5.0以上版本才能使用。

下面是读写使用simplexml操作xml用的方法:

<?php
header("content-type:text/html; charset=utf-8");    //指定PHP使用UTF-8编码
$xml = simplexml_load_file("example.xml");        //读取xml文件
$newxml = $xml->asXML();                              //标准化$xml
$fp = fopen("newxml.xml", "w");                      //新建xml文件
fwrite($fp, $newxml);                                     //写入-------xml文件
fclose($fp);
?>

 

list.xml

<?xml version="1.0" encoding="utf-8"?>
<lists>
 <company>武汉XXX公司</company>
 <user>----
   <name>张三</name>
   <age>25</age>
   <height>172</height>
 </user>
  <user>
   <name>李四</name>
   <age>27</age>
   <height>176</height>
 </user>
   <user>
   <name>王五</name>
   <age>22</age>
   <height>168</height>
 </user>
</lists>

 

readxml.php

很简单,首先用simplexml_load_file()函数载入xml文件,
$myxml= simplexml_load_file('config.xml');

 然后就可以用$myxml 来访问每个节点了。

$myxml->子节点1->子节点2->子节点3->子节点4-->........

如果某节点不重复,就是唯一的,可以直接输出,

如果某节点是重复的,有多个节点名称一样,则取得的值是一个数组。------

<?php====
echo "php读取XML文件 <br>";
header("content-type:text/html; charset=utf-8"); //设置编码
$lists = simplexml_load_file('list.xml');  //载入xml文件 $lists和xml文件的根节点是一样的 
$companyName = $lists->company;=========
echo $companyName;   //直接输出
echo "<br>";
foreach($lists->user as $users){     //有多个user,取得的是数组,循环输出
 print($users->name);
 print($users->age);
 print($users->height);
 echo "<br>";
}
?>

很简单就输出了xml文件的内容。-