PHP读写XML文件

PHP读写XML文件
author: MoreWindows
blog:    http://blog.csdn.net/MoreWindows
 
PHP可以方便的生成和读取XML文件。PHP主要通过DOMDocument、DOMElement和DOMNodeList来完成XML的读取与写入操作的。下面就简要说明下如何使用这些类。
一.生成XML文件
对于一个如下XML文件


[html] view plaincopy
<?xml version="1.0" encoding="UTF-8"?>  
<article>  
  <title>PHP访问MySql数据库 初级篇</title>  
  <link>http://blog.csdn.net/morewindows/article/details/7102362</link>  
</article>
  我们来看看如何用PHP来生成:
首先new一个DOMDocument对象并设置编码格式。
$dom = newDOMDocument('1.0', 'UTF-8');
$dom->formatOutput= true;
 
再创建<article>结点和<title>结点
$rootelement =$dom->createElement("article");
$title =$dom->createElement("title", "PHP访问MySql数据库 初级篇");
 
然后创建带文本内容的<link>结点
$link =$dom->createElement("link","http://blog.csdn.net/morewindows/article/details/7102362");
也可以先生成<link>结点再为其添加文本内容。
$link = $dom->createElement("link");
$linktext =$dom->createTextNode('http://blog.csdn.net/morewindows/article/details/7102362');
$link->appendChild($linktext);
 
然后将<title>和<link>结点加入到<article>结点中去
$rootelement->appendChild($title);
$rootelement->appendChild($link);
 
最后将<article>结点加入到DOMDocument对象中,
$dom->appendChild($rootelement);
 
这样一个完整的XML就生成完毕了。再整出整个XML,
echo $dom->saveXML() ;
saveXML()也可以只输入部分XML文本,如echo $dom->saveXML($link);就只会输出<link>结点:<link>http://blog.csdn.net/morewindows/article/details/7102362</link>
 
下面再给出一个完整的PHP中数据内容输出到XML文件的例子。该例子会对将一个PHP数组输出到XML文件中。
[php] view plaincopy
<?php  
//将数组输出到XML文件中  
// by MoreWindows( http://blog.csdn.net/MoreWindows )  
$article_array = array(  
    "第一篇" => array(  
        "title"=>"PHP访问MySql数据库 初级篇",   
        "link"=>"http://blog.csdn.net/morewindows/article/details/7102362"  
    ),  
    "第二篇" => array(  
        "title"=>"PHP访问MySql数据库 中级篇 Smarty技术",   
        "link"=>"http://blog.csdn.net/morewindows/article/details/7094642"  
    ),  
    "第三篇" => array(  
        "title"=>"PHP访问MySql数据库 高级篇 AJAX技术",   
        "link"=>"http://blog.csdn.net/morewindows/article/details/7086524"  
    ),  
);  
$dom = new DOMDocument('1.0', 'UTF-8');  
$dom->formatOutput = true;  
$rootelement = $dom->createElement("MoreWindows");  
foreach ($article_array as $key=>$value)  
{  
    $article = $dom->createElement("article", $key);  
    $title = $dom->createElement("title", $value['title']);  
    $link = $dom->createElement("link", $value['link']);  
    $article->appendChild($title);  
    $article->appendChild($link);  
    $rootelement->appendChild($article);  
}  
$dom->appendChild($rootelement);  
$filename = "D:\\test.xml";  
echo 'XML文件大小' . $dom->save($filename) . '字节';  
?>  
运行该PHP会在D盘上生成test.xml文件(Win7 + XAMPP + IE9.0测试通过)
 
二.读取XML文件  
以读取前文中生成的D:\\test.xml为例:
[php] view plaincopy
<?php  
//读取XML文件  
// by MoreWindows( http://blog.csdn.net/MoreWindows )  
$filename = "D:\\test.xml";  
$article_array = array();  
  
$dom = new DOMDocument('1.0', 'UTF-8');  
$dom->load($filename);  
  
     //得到<article>结点  
$articles = $dom->getElementsByTagName("article");  
echo '<article> 结点个数 ' . $articles->length;  
foreach ($articles as $article)  
{  
    $id = $article->getElementsByTagName("id")->item(0)->nodeValue;  
    $title = $article->getElementsByTagName("title")->item(0)->nodeValue;  
    $link = $article->getElementsByTagName("link")->item(0)->nodeValue;  
    $article_array[$id] = array('title'=>$title, 'link'=>$link);  
}  
  
//输出结果  
echo "<pre>";  
var_dump($article_array);  
echo "</pre>";  
?>  
运行结果如下:


更详细的内容请访问PHP手册中的DOMDocument类。当然想要更加方便可以使用一些第三方提供的XML类库,这里就不一一列举了,有兴趣可以到网上找找。
 
 
原文地址:http://blog.csdn.net/morewindows/article/details/7241452
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值