php中使用DOM类读取XML文件的实现代码


Posted in PHP onDecember 14, 2011

主要功能:php中使用DOM类读取XML文件
设计知识点:
1、XML节点循环读取
2、用iconv()函数实现编码转换,防止中文乱码
holiday.xml文件如下

<?xml version="1.0" encoding="UTF-8"?> 
<daysOff-overTime> 
<year> 
<yearName>2012</yearName> 
<holiday> 
<holidayName>元旦</holidayName> 
<daysOff> 
<from>2012-1-1</from> 
<to>2012-1-3</to> 
</daysOff> 
<overTime> 
<day>2011-12-31</day> 
</overTime> 
</holiday> 
<holiday> 
<holidayName>春节</holidayName> 
<daysOff> 
<from>2012-1-22</from> 
<to>2012-1-28</to> 
</daysOff> 
<overTime> 
<day>2012-1-21</day> 
<day>2012-1-29</day> 
</overTime> 
</holiday> 
<holiday> 
<holidayName>清明节</holidayName> 
<daysOff> 
<from>2012-4-2</from> 
<to>2012-4-4</to> 
</daysOff> 
<overTime> 
<day>2012-3-31</day> 
<day>2012-4-1</day> 
</overTime> 
</holiday> 
<holiday> 
<holidayName>劳动节</holidayName> 
<daysOff> 
<from>2012-4-29</from> 
<to>2012-5-1</to> 
</daysOff> 
<overTime> 
<day>2012-4-28</day> 
</overTime> 
</holiday> 
<holiday> 
<holidayName>端午节</holidayName> 
<daysOff> 
<from>2012-6-22</from> 
<to>2012-6-24</to> 
</daysOff> 
<overTime/> 
</holiday> 
<holiday> 
<holidayName>中秋节、国庆节</holidayName> 
<daysOff> 
<from>2012-9-30</from> 
<to>2012-10-7</to> 
</daysOff> 
<overTime> 
<day>2012-9-26</day> 
</overTime> 
</holiday> 
</year> 
</daysOff-overTime>

php代码如下:
<?php 
//读取xml文件 
$xmlDoc = new DOMDocument(); 
$xmlDoc->load('http://127.0.0.1/holiday.xml'); 
//获得该xml文件中的所有年份 
$years = $xmlDoc->getElementsByTagName("year"); 
//对每一个年份进行处理 
foreach($years as $year){ 
//获得具体的年份值 
$yearNames = $year->getElementsByTagName("yearName"); 
$yearName = $yearNames->item(0)->nodeValue; 
echo $yearName.'年'.'</br>'; 
//获得该年份下所有的假日 
$holidays = $year->getElementsByTagName("holiday"); 
//对每一个假日进行处理 
foreach($holidays as $holiday){ 
//获得假日名称 
$holidayNames = $holiday->getElementsByTagName("holidayName"); 
$holidayName = $holidayNames->item(0)->nodeValue; 
echo iconv('utf-8','gb2312', $holidayName).': '.'</br>'; 
//获得假日的具体放假日期 
$daysOffs = $holiday->getElementsByTagName("daysOff"); 
$daysOff = $daysOffs->item(0); 
$froms = $daysOff->getElementsByTagName("from"); 
$from = $froms->item(0)->nodeValue; 
$tos = $daysOff->getElementsByTagName("to"); 
$to = $tos->item(0)->nodeValue; 
echo '假期为:'.$from.' 至 '.$to.'</br>'; 
//获得针对该假日的调休日期 
$overTimes = $holiday->getElementsByTagName("overTime"); 
$overTime = $overTimes->item(0); 
$days = $overTime->getElementsByTagName("day"); 
//通过判断,有调休日期则显示,没有则不显示 
if($days->length!=0){ 
echo '调休日为:'; 
foreach($days as $day){ 
echo $day->nodeValue.' '; 
} 
echo '</br>'; 
} 
echo '</br>'; 
} 
} 
?>

输出显示:

php中使用DOM类读取XML文件的实现代码

PHP 相关文章推荐
用libtemplate实现静态网页生成
Oct 09 PHP
php+ajax做仿百度搜索下拉自动提示框(有实例)
Aug 21 PHP
使用openssl实现rsa非对称加密算法示例
Jan 24 PHP
php解决约瑟夫环示例
Apr 09 PHP
destoon复制新模块的方法
Jun 21 PHP
PHP+MySQL删除操作实例
Jan 21 PHP
ThinkPHP模板循环输出Volist标签用法实例详解
Mar 23 PHP
值得分享的php+ajax实时聊天室
Jul 20 PHP
php实现登陆模块功能示例
Oct 20 PHP
php 判断IP为有效IP地址的方法
Jan 28 PHP
laravel通过a标签从视图向控制器实现传值
Oct 15 PHP
PHP防止sql注入小技巧之sql预处理原理与实现方法分析
Dec 13 PHP
通达OA公共代码 php常用检测函数
Dec 14 #PHP
PHP表单提交表单名称含有点号(.)则会被转化为下划线(_)
Dec 14 #PHP
php中日期加减法运算实现代码
Dec 08 #PHP
php使用Smarty的相关注意事项及访问变量的几种方式
Dec 08 #PHP
在PHP中利用wsdl创建标准webservice的实现代码
Dec 07 #PHP
PHP新手NOTICE错误常见解决方法
Dec 07 #PHP
PHPExcel读取Excel文件的实现代码
Dec 06 #PHP
You might like
PHP下MAIL的另一解决方案
2006/10/09 PHP
PHP 查找字符串常用函数介绍
2012/06/07 PHP
zf框架db类的分页示例分享
2014/03/14 PHP
php日期操作技巧小结
2016/06/25 PHP
Laravel框架控制器的middleware中间件用法分析
2019/09/30 PHP
laravel框架添加数据,显示数据,返回成功值的方法
2019/10/11 PHP
Laravel数据库读写分离配置的方法
2019/10/13 PHP
jquery ajax传递中文参数乱码问题及解决方法说明
2014/02/07 Javascript
node.js操作mongoDB数据库示例分享
2014/11/26 Javascript
JQuery控制图片由中心点逐渐放大效果
2016/06/26 Javascript
设置jquery UI 控件的大小方法
2016/12/12 Javascript
jQuery实现圣诞节礼物传送(花式轮播)
2016/12/25 Javascript
详解vue.js+UEditor集成 [前后端分离项目]
2017/07/07 Javascript
jQuery实现所有验证通过方可提交的表单验证
2017/11/21 jQuery
Vue实现动态创建和删除数据的方法
2018/03/17 Javascript
在vue项目中引入高德地图及其UI组件的方法
2018/09/04 Javascript
Vue 实时监听窗口变化 windowresize的两种方法
2018/11/06 Javascript
Python爬取国外天气预报网站的方法
2015/07/10 Python
用不到50行的Python代码构建最小的区块链
2017/11/16 Python
Python实现按照指定要求逆序输出一个数字的方法
2018/04/19 Python
Python用于学习重要算法的模块pygorithm实例浅析
2018/08/16 Python
Python字典对象实现原理详解
2019/07/01 Python
10分钟用python搭建一个超好用的CMDB系统
2019/07/17 Python
Python爬取视频(其实是一篇福利)过程解析
2019/08/01 Python
Flask框架请求钩子与request请求对象用法实例分析
2019/11/07 Python
Python web如何在IIS发布应用过程解析
2020/05/27 Python
基于python调用jenkins-cli实现快速发布
2020/08/14 Python
python hmac模块验证客户端的合法性
2020/11/07 Python
Europcar西班牙:全球汽车租赁领域的领导者
2018/09/17 全球购物
澳大利亚和新西兰最大的在线旅行社之一:Aunt Betty
2019/08/07 全球购物
意大利单身交友网站:Meetic
2020/07/12 全球购物
大学生自我鉴定范文模板
2014/01/21 职场文书
授权委托书怎么写
2014/04/03 职场文书
财务内勤岗位职责
2014/04/17 职场文书
2014预防青少年违法犯罪工作总结
2014/12/10 职场文书
2016党员三严三实心得体会
2016/01/15 职场文书