`
k_lb
  • 浏览: 798944 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论
  • kitleer: 据我所知,国内有款ETL调度监控工具TaskCTL,支持ket ...
    kettle调度

PHP读写XML文件

    博客分类:
  • PHP
 
阅读更多

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

分享到:
评论

相关推荐

    php对xml文件增删改查,对xml数据进行分页

    php5自带类simplexml 对xml文件进行增删改查,并对xml数据进行正序倒序查询并分页。希望对小数据网站有所帮助!

    浅析PHP对XML文档的基本操作.pdf

    浅析PHP对XML文档的基本操作.pdf

    PHP使用XMLWriter读写xml文件操作详解

    本文实例讲述了PHP使用XMLWriter读写xml文件操作。分享给大家供大家参考,具体如下: 米扑科技旗下的多个产品,需要脚本自动生成sitemap.xml,于是重新温习一遍PHP XML读写操作。 读写xml的方式,主要围绕XMLWriter...

    php对xml文件的增删改查操作实现方法分析

    本文实例讲述了php对xml文件的增删改查操作实现方法。分享给大家供大家参考,具体如下: xml源文件 &lt;?xml version=1.0 encoding=utf-8?&gt; &lt;endTime&gt;2016-08-01 文件内容 $file='callBoard.xml'; 查询...

    PHP使用DOM对XML解析处理操作示例

    本文实例讲述了PHP使用DOM对XML解析处理操作。分享给大家供大家参考,具体如下...php对xml文档进行增删改查(CURD)操作,具体分析如下: xml文档:class.xml &lt;?xml version=1.0 encoding=utf-8?&gt; &lt;student

    PHP实现动态创建XML文档的方法

    主要介绍了PHP实现动态创建XML文档的方法,结合实例形式分析了php针对xml格式数据的构建及文件读写相关操作技巧,需要的朋友可以参考下

    xml详细中文帮助文档

    包括W3C的标准技术:HTML、XHTML、CSS、XML 。以及其他的技术,诸如JavaScript、PHP、ASP、SQL等等。 在线实例测试工具 在w3school,我们提供上...通过使用我们的在线编辑器,你可以编辑这些例子,并对代码进行实验。

    php的SimpleXML方法读写XML接口文件实例解析

    在php5中读写xml文档是非常方便的,可以直接使用php的SimpleXML方法来快速解析与生成xml格式的文件,本文实例说明如下,需要的朋友可以参考下

    XML轻松学习手册--XML肯定是未来的发展趋势,不论是网页设计师还是网络程序员,都应该及时学习和了解

    各浏览器开发商已经达成协议,对XML实行严格而挑剔的解析,任何细小的错误都会被报告。你可以将上面的myfile.xml修改一下,比如将改为,然后用IE5直接打开myfile.xml,会得到一个出错信息页面: &lt;?xml version="1.0...

    php解析xml 的四种简单方法(附实例)

    XML处理是开发过程中经常遇到的,PHP对其也有很丰富的支持,本文只是对其中某几种解析技术做简要说明,包括:Xml parser, SimpleXML, XMLReader, DOMDocument。 1。 XML Expat Parser: XML Parser使用Expat XML解析...

    php-XmlDigitalSignature:用于在PHP中生成XML数字签名的库

    使用PHP的,创建该库是为了使用XML数字签名对任意数据和整个XML文档进行签名。 此类的代码受启发,由于缺少文档以及它产生的签名文档未正确验证的事实,我发现无法使用该。 如果该类生成的文档无效(由于这些签名有...

    XML 讲解和分析

    因为XML是W3C制定的,XML的标准化工作由W3C的XML工作组负责,该小组成员由来自各个地方和行业的专家组成,他们通过email交流对XML标准的意见,并提出自己的看法 (www.w3.org/TR/WD-xml)。因为XML 是个公共格式, ...

    DOM基础及php读取xml内容操作的方法

    本文实例讲述了DOM基础...php对xml文档进行增删改查(curd)操作,具体分析如下: xml文档:class.xml 复制代码 代码如下:&lt;?xml version=”1.0″ encoding=”utf-8″?&gt;  ”美女”&gt;  小乔  女  &lt;age&gt;20&lt;/age&gt;

    php XPath对XML文件查找及修改实现代码

    php XPath对XML文件查找及修改实现代码,需要的朋友可以参考下。

    PHP4和PHP5版本下解析XML文档的操作方法实例分析

    在PHP网站开发与建设过程中,时常会碰到需要对XML文档进行解析,PHP4版本自带了XML解析器(sax),PHP5版本增加了SimpleXML(基于dom)的XML扩展,对XML的解析更是非常方便,今天和大家分享下在不同环境下对XML文档...

    解析php DOMElement 操作xml 文档的实现代码

    本篇文章是对在php中DOMElement 操作xml 文档的实现进行了分析介绍。需要的朋友参考下

Global site tag (gtag.js) - Google Analytics