目录
一.生成XML文件
二.读取XML文件  
首页 php教程 php手册 PHP读写XML文件

PHP读写XML文件

Jun 06, 2016 pm 07:54 PM
php xml 文件 读写

PHP读写XML文件 author:MoreWindows blog: http://blog.csdn.net/MoreWindows KeyWord: PHP 解析XML DOMDocument XML文件操作 PHP可以方便的生成和读取XML文件。PHP主要通过DOMDocument、DOMElement和DOMNodeList来完成XML的读取与写入操作的。下面就简要说

PHP读写XML文件

author: MoreWindows

blog:    http://blog.csdn.net/MoreWindows

KeyWord:    PHP 解析XML DOMDocument XML文件操作

 

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
</article>
登录后复制

我们来看看如何用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);

 

然后将和<link>结点加入到<article>结点中去</article>

$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文件中。

<?php //将数组输出到XML文件中
// by MoreWindows( http://blog.csdn.net/MoreWindows )
$article_array = array(
	"第一篇" => array(
		"title"=&gt;"PHP访问MySql数据库 初级篇", 
		"link"=&gt;"http://blog.csdn.net/morewindows/article/details/7102362"
	),
	"第二篇" =&gt; array(
		"title"=&gt;"PHP访问MySql数据库 中级篇 Smarty技术", 
		"link"=&gt;"http://blog.csdn.net/morewindows/article/details/7094642"
	),
	"第三篇" =&gt; array(
		"title"=&gt;"PHP访问MySql数据库 高级篇 AJAX技术", 
		"link"=&gt;"http://blog.csdn.net/morewindows/article/details/7086524"
	),
);
$dom = new DOMDocument('1.0', 'UTF-8');
$dom-&gt;formatOutput = true;
$rootelement = $dom-&gt;createElement("MoreWindows");
foreach ($article_array as $key=&gt;$value)
{
	$article = $dom-&gt;createElement("article", $key);
	$title = $dom-&gt;createElement("title", $value['title']);
	$link = $dom-&gt;createElement("link", $value['link']);
	$article-&gt;appendChild($title);
	$article-&gt;appendChild($link);
	$rootelement-&gt;appendChild($article);
}
$dom-&gt;appendChild($rootelement);
$filename = "D:\\test.xml";
echo 'XML文件大小' . $dom-&gt;save($filename) . '字节';
?&gt;
登录后复制

运行该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-&gt;getElementsByTagName("article");
echo '<article> 结点个数 ' . $articles-&gt;length;
foreach ($articles as $article)
{
	$id = $article-&gt;getElementsByTagName("id")-&gt;item(0)-&gt;nodeValue;
	$title = $article-&gt;getElementsByTagName("title")-&gt;item(0)-&gt;nodeValue;
	$link = $article-&gt;getElementsByTagName("link")-&gt;item(0)-&gt;nodeValue;
	$article_array[$id] = array('title'=&gt;$title, 'link'=&gt;$link);
}

//输出结果
echo "<pre class="brush:php;toolbar:false">";
var_dump($article_array);
echo "
登录后复制
"; ?>

运行结果如下:

PHP读写XML文件

更详细的内容请访问PHP手册中的DOMDocument类。当然想要更加方便可以使用一些第三方提供的XML类库,这里就不一一列举了,有兴趣可以到网上找找。

 

 

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

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门文章

仓库:如何复兴队友
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 周前 By 尊渡假赌尊渡假赌尊渡假赌

热门文章

仓库:如何复兴队友
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 周前 By 尊渡假赌尊渡假赌尊渡假赌

热门文章标签

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

适用于 Ubuntu 和 Debian 的 PHP 8.4 安装和升级指南 适用于 Ubuntu 和 Debian 的 PHP 8.4 安装和升级指南 Dec 24, 2024 pm 04:42 PM

适用于 Ubuntu 和 Debian 的 PHP 8.4 安装和升级指南

CakePHP 日期和时间 CakePHP 日期和时间 Sep 10, 2024 pm 05:27 PM

CakePHP 日期和时间

CakePHP 项目配置 CakePHP 项目配置 Sep 10, 2024 pm 05:25 PM

CakePHP 项目配置

CakePHP 文件上传 CakePHP 文件上传 Sep 10, 2024 pm 05:27 PM

CakePHP 文件上传

CakePHP 路由 CakePHP 路由 Sep 10, 2024 pm 05:25 PM

CakePHP 路由

讨论 CakePHP 讨论 CakePHP Sep 10, 2024 pm 05:28 PM

讨论 CakePHP

CakePHP 快速指南 CakePHP 快速指南 Sep 10, 2024 pm 05:27 PM

CakePHP 快速指南

如何设置 Visual Studio Code (VS Code) 进行 PHP 开发 如何设置 Visual Studio Code (VS Code) 进行 PHP 开发 Dec 20, 2024 am 11:31 AM

如何设置 Visual Studio Code (VS Code) 进行 PHP 开发

See all articles