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 相关文章推荐
PHP音乐采集(部分代码)
Feb 14 PHP
比较全面的PHP数组的使用方法小结
Sep 23 PHP
PHP 字符串正则替换函数preg_replace使用说明
Jul 15 PHP
php 中英文语言转换类代码
Aug 11 PHP
三个类概括PHP的五种设计模式
Sep 05 PHP
php实现简单洗牌算法
Jun 18 PHP
配置php.ini实现PHP文件上传功能
Nov 27 PHP
Yii核心组件AssetManager原理分析
Dec 02 PHP
隐藏Nginx或Apache以及PHP的版本号的方法
Jan 03 PHP
3种方法轻松处理php开发中emoji表情的问题
Jul 18 PHP
PHP入门教程之使用Mysqli操作数据库的方法(连接,查询,事务回滚等)
Sep 11 PHP
PHP基于Redis消息队列实现发布微博的方法
May 03 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+mysql一个名片库程序
2006/10/09 PHP
使用 eAccelerator加速PHP代码的方法
2007/09/30 PHP
PHP函数eval()介绍和使用示例
2014/08/20 PHP
ThinkPHP中session函数详解
2016/09/14 PHP
PHP操作XML中XPath的应用示例
2019/07/04 PHP
Web Inspector:关于在 Sublime Text 中调试Js的介绍
2013/04/18 Javascript
js页面跳转的问题(跳转到父页面、最外层页面、本页面)
2013/08/14 Javascript
jQuery操作Select的Option上下移动及移除添加等等
2013/11/18 Javascript
JS OffsetParent属性深入解析
2014/01/13 Javascript
jQuery中的val()示例应用
2014/02/26 Javascript
jQuery中eq()方法用法实例
2015/01/05 Javascript
jquery获取checkbox的值并post提交
2015/01/14 Javascript
JS获取网页图片name属性的方法
2015/04/01 Javascript
JS实现超精简的链接列表在固定区域内滚动效果代码
2015/11/04 Javascript
详解JS中Array对象扩展与String对象扩展
2016/01/07 Javascript
JQuery点击行tr实现checkBox选中的简单实例
2016/05/26 Javascript
js中创建对象的几种方式
2017/02/05 Javascript
Vue computed计算属性的使用方法
2017/07/14 Javascript
实现div滚动条默认最底部以及默认最右边的示例代码
2017/11/15 Javascript
微信公众平台获取access_token的方法步骤
2019/03/29 Javascript
解决layer.confirm快速点击会重复触发事件的问题
2019/09/23 Javascript
js实现拖拽与碰撞检测
2020/09/18 Javascript
Python的爬虫程序编写框架Scrapy入门学习教程
2016/07/02 Python
django 创建过滤器的实例详解
2017/08/14 Python
用Python实现校园通知更新提醒功能
2019/11/23 Python
python实现滑雪游戏
2020/02/22 Python
Pytorch 使用CNN图像分类的实现
2020/06/16 Python
python中re模块知识点总结
2021/01/17 Python
Lookfantastic法国官网:英国知名美妆购物网站
2017/10/28 全球购物
Ray-Ban雷朋奥地利官网:全球领先的太阳眼镜品牌
2020/10/12 全球购物
一份全面的PHP面试问题考卷
2012/07/15 面试题
大学生专业个人学习的自我评价
2013/10/26 职场文书
挖掘机司机岗位职责
2014/02/12 职场文书
妇联主席先进事迹
2014/05/18 职场文书
财务工作检讨书
2014/10/29 职场文书
工作保证书怎么写
2015/02/28 职场文书