php怎么读写xml文件,php读写xml文件的方法介绍

php读写xml文件时,常用到如下的几行:

复制代码 代码如下:

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);

php可以方便的生成和读取xml文件。

主要通过DOMDocument、DOMElement和DOMNodeList来完成XML的读取与写入操作。

下面为大家介绍如何使用这些类,供大家学习参考。

一.生成XML文件

对于一个如下XML文件。

复制代码 代码如下:

PHP访问MySql数据库 初级篇

http://blog.csdn.net/morewindows/article/details/7102362

PHP访问MySql数据库 初级篇

http://blog.csdn.net/morewindows/article/details/7102362

我们来看看如何用PHP来生成:

首先new一个DOMDocument对象并设置编码格式。

复制代码 代码如下:

$dom = newDOMDocument('1.0', 'UTF-8');

$dom->formatOutput= true;

再创建结点和结点

复制代码 代码如下:

$rootelement =$dom->createElement("article");

$title =$dom->createElement("title", "PHP访问MySql数据库 初级篇");

然后创建带文本内容的结点

复制代码 代码如下:

$link =$dom->createElement("link","http://blog.csdn.net/morewindows/article/details/7102362");

也可以先生成结点再为其添加文本内容。

复制代码 代码如下:

$link = $dom->createElement("link");

$linktext =$dom->createTextNode('http://blog.csdn.net/morewindows/article/details/7102362');

$link->appendChild($linktext);

然后将

和结点加入到结点中去

复制代码 代码如下:

$rootelement->appendChild($title);

$rootelement->appendChild($link);

最后将结点加入到DOMDocument对象中,

复制代码 代码如下:

$dom->appendChild($rootelement);

这样一个完整的XML就生成完毕了。再整出整个XML,

复制代码 代码如下:

echo $dom->saveXML() ;

saveXML()也可以只输入部分XML文本,如echo $dom->saveXML($link);就只会输出结点:http://blog.csdn.net/morewindows/article/details/7102362

下面再给出一个完整的PHP中数据内容输出到XML文件的例子。该例子会对将一个PHP数组输出到XML文件中。

复制代码 代码如下:

//将数组输出到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) . '字节';

?>

#-------------------

复制代码 代码如下:

//将数组输出到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为例:

复制代码 代码如下:

//读取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);

//得到结点

$articles = $dom->getElementsByTagName("article");

echo ' 结点个数 ' . $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 "

";

var_dump($article_array);

echo "

";

?>

#-----------------

复制代码 代码如下:

//读取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);

//得到结点

$articles = $dom->getElementsByTagName("article");

echo ' 结点个数 ' . $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 "

";

var_dump($article_array);

echo "

";

?>

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值