PHP读写XML文件
来源:互联网 发布:Tensorflow训练验证码 编辑:程序博客网 时间:2024/04/30 16:10
原文地址:http://blog.csdn.net/morewindows/article/details/7241452
PHP可以方便的生成和读取XML文件。PHP主要通过DOMDocument、DOMElement和DOMNodeList来完成XML的读取与写入操作的。下面就简要说明下如何使用这些类。
一.生成XML文件
对于一个如下XML文件。
- <?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
- //将数组输出到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
- //读取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类库,这里就不一一列举了,有兴趣可以到网上找找。
- PHP读写XML文件
- PHP读写XML文件
- PHP读写XML文件
- PHP读写XML文件
- PHP读写XML文件
- php读写XML文件
- PHP读写XML文件
- PHP读写XML文件
- PHP DOM 读写XML文件 节点属性
- PHP 读写 CSV 、XML 文件: SimpleExcel
- PHP SimpleXMLElement:XML文件解析和读写
- PHP 运用 XMLWriter 读写 xml 文件
- php 读写 xml
- php读写xml
- php的SimpleXML方法读写XML接口文件实例解析
- php的SimpleXML方法读写XML接口文件实例解析
- php SimpleXML读写XML接口文件例子分析
- 读写XML文件
- 发布到AppStore中的iOS应用程序审查指南
- acm入门搜索-水池数目
- CCTextureCache的多线程加载原理和使用
- QQ 新浪微博 淘宝账号 第三方登陆 (C#)
- Eclipse自动部署项目到Tomcat的webapps下的有效方法
- PHP读写XML文件
- 通过设置P3P头来实现跨域访问COOKIE
- 看看别人研究生在做什么,在看看自己---推荐《我这十年》-----一个研究生的自我总结
- Android实战开发二,ListView组件应用,适配器的三种效用
- 【bug】qt - no such file or direction
- 关于升级xcode 5.1编译失败问题
- hdu 1702 水水
- Mongodb 常用查询语法
- 宏定义的一些东西