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 相关文章推荐
我的论坛源代码(九)
Oct 09 PHP
PHP最常用的ini函数分析 针对PHP.ini配置文件
Apr 22 PHP
.htaccess文件保护实例讲解
Feb 06 PHP
PHP中数组合并的两种方法及区别介绍
Sep 14 PHP
phpQuery占用内存过多的处理方法
Nov 13 PHP
php实现图形显示Ip地址的代码及注释
Jan 20 PHP
laravel安装和配置教程
Oct 29 PHP
php UNIX时间戳用法详解
Feb 16 PHP
PHP获取路径和目录的方法总结【必看篇】
Mar 04 PHP
解决PHP上传非标准格式的图片pjpeg失败的方法
Mar 12 PHP
源码分析 Laravel 重复执行同一个队列任务的原因
Dec 25 PHP
Laravel中9个不经常用的小技巧汇总
Apr 16 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和Mysqlweb应用开发核心技术 第1部分 Php基础-1 开始了解php
2011/07/03 PHP
通过缓存数据库结果提高PHP性能的原理介绍
2012/09/05 PHP
如何用C语言编写PHP扩展的详解
2013/06/13 PHP
php中try catch捕获异常实例详解
2014/11/21 PHP
php实现短信发送代码
2015/07/05 PHP
PHP面向对象继承用法详解(优化与减少代码重复)
2016/12/02 PHP
PHP实现防盗链的方法分析
2017/07/25 PHP
WHOOPS PHP调试库的使用
2017/09/29 PHP
Centos7.7 64位利用本地完整安装包安装lnmp/lamp套件教程
2021/03/09 Servers
超级兔子让浮动层消失的前因后果
2007/03/09 Javascript
javascript事件模型代码
2007/07/01 Javascript
javascript 必知必会之closure
2009/09/21 Javascript
理解Javascript_06_理解对象的创建过程
2010/10/15 Javascript
js数组如何添加json数据及js数组与json的区别
2015/10/27 Javascript
JS日期加减,日期运算代码
2015/11/05 Javascript
jqGrid翻页时数据选中丢失问题的解决办法
2017/02/13 Javascript
使用JQuery实现图片轮播效果的实例(推荐)
2017/10/24 jQuery
微信小程序录音与播放录音功能
2017/12/25 Javascript
详解使用jQuery.i18n.properties实现js国际化
2018/05/04 jQuery
微信小程序的开发范式BeautyWe.js入门详解
2019/07/10 Javascript
[42:20]2014 DOTA2华西杯精英邀请赛5 24 DK VS NewBee
2014/05/25 DOTA
跟老齐学Python之变量和参数
2014/10/10 Python
python 捕获 shell/bash 脚本的输出结果实例
2017/01/04 Python
Python实现列表删除重复元素的三种常用方法分析
2017/11/24 Python
详解tensorflow载入数据的三种方式
2018/04/24 Python
详解pandas使用drop_duplicates去除DataFrame重复项参数
2019/08/01 Python
python 如何去除字符串头尾的多余符号
2019/11/19 Python
python中导入 train_test_split提示错误的解决
2020/06/19 Python
拿来就用!Python批量合并PDF的示例代码
2020/08/10 Python
python 爬取免费简历模板网站的示例
2020/09/27 Python
New delete 与malloc free 的联系与区别
2013/02/04 面试题
高中教师个人总结
2015/02/10 职场文书
劳动者解除劳动合同通知书
2015/04/16 职场文书
《牧场之国》教学反思
2016/02/22 职场文书
Nginx快速入门教程
2021/03/31 Servers
使用Redis做预定库存缓存功能
2022/04/02 Redis