SimpleXML函数包是PHP5新加的处理XML文件的非常简单的函数包,使用它将使xml的处理摆脱DOM处理方式的烦琐、和SAX处理方式的不清晰,过程变得非常简洁。
SimpleXmL读取整个xml文件成为一个SimepleXMLElement对象,通过对象的属性访问他的子节点;如果多个节点名称相同,则自动成为索引数组;节点的属性成为节点的关联数组的key。
下面是一段基本的xml处理代码,使用的xml文件是php5手册上的例子,这儿不在罗列。
<?php
//cong work at Wed Mar 19 18:20:53 CST 2008
//构造出SimpleXMLElement对象
$xml = simplexml_load_file('test.xml');
//访问某个子节点
echo $xml->movie->plot."<br>\n";
//多个名称相同的节点自动变为数组
echo $xml->movie->characters->character[1]->name;
//修改某个节点的值
$xml->movie->rating[0] = 15;
//新增一个子节点
$xml->movie->rating[2] = 25;
echo $xml->movie->rating[2];
//新增一个标签
$xml->movie->name = 'aaaaa';
//设置标签的属性
$xml->movie->name['id'] = 'bbb';
//将该对象重新保存成xml文件
$xml->asXML('test.xml');
?>
下面的代码从数据库的messages表中读取10条记录,将它保存为一个xml文件:
$xml = new SimpleXMLElement('<Messages></Messages>');
$i = 0;
mysql_connect('localhost','root','root');
mysql_select_db('test');
$rs = mysql_query("select * from messages limit 10");
while($row = mysql_fetch_assoc($rs)){
$xml->message[$i] = '';
$xml->message[$i]->id = $row['id'];
$xml->message[$i]->emial = $row['useremail'];
$xml->message[$i]->ip = $row['userip'];
$xml->message[$i]->title = $row['title'];
$xml->message[$i]->mtime = $row['mtime'];
$i++;
}
$xml->asXML('messages.xml');
相信这些代码都很容易看的明白。



