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作为Shell脚本语言使用
Oct 09 PHP
我的论坛源代码(八)
Oct 09 PHP
php 图像函数大举例(非原创)
Jun 20 PHP
浅析php中抽象类和接口的概念以及区别
Jun 27 PHP
合并ThinkPHP配置文件以消除代码冗余的实现方法
Jul 22 PHP
PHP中比较时间大小实例
Aug 21 PHP
php json_encode()函数返回json数据实例代码
Oct 10 PHP
PHP date函数常用时间处理方法
May 11 PHP
PHP+ajax分页实例简析
Dec 07 PHP
PHP程序中使用adodb连接不同数据库的代码实例
Dec 19 PHP
PHP进阶学习之命名空间基本用法分析
Jun 18 PHP
PHP 多进程与信号中断实现多任务常驻内存管理实例方法
Oct 04 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
服务器端解压缩zip的脚本
2006/12/22 PHP
php图片的二进制转换实现方法
2014/12/15 PHP
php获取数据库结果集方法(推荐)
2017/06/01 PHP
php实现文件上传基本验证
2020/03/04 PHP
推荐一些非常不错的javascript学习资源站点
2007/08/29 Javascript
JS 动态加载脚本的4种方法
2009/05/05 Javascript
在次封装easyui-Dialog插件实现代码
2010/11/14 Javascript
js函数排序的实例代码
2013/07/01 Javascript
调用jQuery滑出效果时闪烁的解决方法
2014/03/27 Javascript
手写的一个兼容各种浏览器的javascript getStyle函数(获取元素的样式)
2014/06/06 Javascript
javascript中的遍历for in 以及with的用法
2014/12/22 Javascript
jQuery实现的鼠标经过时变宽的效果(附demo源码)
2016/04/28 Javascript
深入理解JS函数的参数(arguments)的使用
2016/05/28 Javascript
原生js封装二级城市下拉列表的实现代码
2016/06/16 Javascript
关于在Servelet中如何获取当前时间的操作方法
2016/06/28 Javascript
jQuery遍历节点树方法分析
2016/09/08 Javascript
jQuery模拟实现的select点击选择效果【附demo源码下载】
2016/11/09 Javascript
js中数组对象去重的两种方法
2019/01/18 Javascript
详解vue中router-link标签所必备了解的属性
2019/04/15 Javascript
如何正确理解vue中的key详解
2019/11/02 Javascript
vue element-ui读取pdf文件的方法
2019/11/26 Javascript
H5+css3+js搭建带验证码的登录页面
2020/10/11 Javascript
使用python实现快速搭建简易的FTP服务器
2018/09/12 Python
python学生信息管理系统(完整版)
2020/04/05 Python
Python语言进阶知识点总结
2019/05/28 Python
tensorflow求导和梯度计算实例
2020/01/23 Python
python help函数实例用法
2020/12/06 Python
全球虚拟主机商:HostGator
2017/02/06 全球购物
建筑工程实习自我鉴定
2013/09/19 职场文书
门前三包责任书
2014/04/15 职场文书
机关单位2016年创先争优活动总结
2016/04/05 职场文书
深入浅析Redis 集群伸缩原理
2021/05/15 Redis
SpringBoot整合RabbitMQ的5种模式实战
2021/08/02 Java/Android
为什么MySQL 删除表数据 磁盘空间还一直被占用
2021/10/16 MySQL
详细介绍Java中的CyclicBarrier
2022/04/13 Java/Android
使用CSS实现六边形的图片效果
2022/08/05 HTML / CSS