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读取30天之内的根据算法排序的代码
Apr 06 PHP
php in_array 函数使用说明与in_array需要注意的地方说明
Apr 13 PHP
PHP中文件上传的一个问题
Sep 04 PHP
PHP通用检测函数集合
Feb 08 PHP
php调用MySQL存储过程的方法集合(推荐)
Jul 03 PHP
php递归函数中使用return的注意事项
Jan 17 PHP
php多文件上传下载示例分享
Feb 20 PHP
PHP微信开发之有道翻译
Jun 23 PHP
Laravel重写用户登录简单示例
Oct 08 PHP
PHP互换两个变量值的方法(不用第三变量)
Nov 14 PHP
php记录搜索引擎爬行记录的实现代码
Mar 02 PHP
浅析PHP中json_encode与json_decode的区别
Jul 15 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中如何调用webservice的实例参考
2013/04/25 PHP
基于empty函数的判断详解
2013/06/17 PHP
PHP实现数字补零功能的2个函数介绍
2014/05/12 PHP
PHP 实现浏览记录并按日期分组
2017/05/11 PHP
PHP智能识别收货地址信息实例
2019/01/05 PHP
javascript 打开页面window.location和window.open的区别
2010/03/17 Javascript
JS解决url传值出现中文乱码的另类办法
2013/04/08 Javascript
JS.elementGetStyle(element, style)应用示例
2013/09/24 Javascript
自定义jQuery插件方式实现强制对象重绘的方法
2015/03/23 Javascript
Nginx上传文件全部缓存解决方案
2015/08/17 Javascript
jQuery实现简单的列表式导航菜单效果代码
2015/08/31 Javascript
为你的微信小程序体积瘦身详解
2017/05/20 Javascript
postman自定义函数实现 时间函数的思路详解
2019/04/17 Javascript
全面解析js中的原型,原型对象,原型链
2021/01/25 Javascript
[14:00]DOTA2国际邀请赛史上最长大战 赛后专访B神
2013/08/10 DOTA
简介Python的collections模块中defaultdict类型的用法
2016/07/07 Python
Python使用修饰器执行函数的参数检查功能示例
2017/09/26 Python
python遍历小写英文字母的方法
2019/01/02 Python
python 反编译exe文件为py文件的实例代码
2019/06/27 Python
Pytorch Tensor的索引与切片例子
2019/08/18 Python
python3的UnicodeDecodeError解决方法
2019/12/20 Python
Python requests获取网页常用方法解析
2020/02/20 Python
浅析Python的命名空间与作用域
2020/11/25 Python
解决python 执行shell命令无法获取返回值的问题
2020/12/05 Python
pyspark对Mysql数据库进行读写的实现
2020/12/30 Python
深入探究HTML5的History API
2015/07/09 HTML / CSS
Linux机考试题
2015/07/17 面试题
干部培训自我鉴定
2014/01/22 职场文书
大课间体育活动方案
2014/03/12 职场文书
环保建议书200字
2014/05/14 职场文书
五四青年节演讲稿
2014/05/26 职场文书
征用土地赔偿协议书
2014/09/26 职场文书
2014年学校党建工作总结
2014/11/11 职场文书
太空授课观后感
2015/06/17 职场文书
保护环境的宣传语
2015/07/13 职场文书
Python借助with语句实现代码段只执行有限次
2022/03/23 Python