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 相关文章推荐
ip签名探针
Oct 09 PHP
用php来检测proxy
Oct 09 PHP
php访问查询mysql数据的三种方法
Oct 09 PHP
php与php MySQL 之间的关系
Jul 17 PHP
php木马webshell扫描器代码
Jan 25 PHP
php实现信用卡校验位算法THE LUHN MOD-10示例
May 07 PHP
PHP中使用json数据格式定义字面量对象的方法
Aug 20 PHP
服务器上配置PHP运行环境教程
Feb 12 PHP
php查看当前Session的ID实例
Mar 16 PHP
php仿微信红包分配算法的实现方法
May 13 PHP
PHP防止图片盗用(盗链)的方法小结
Nov 11 PHP
[原创]php实现数组按拼音顺序排序的方法
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实现多服务器session共享之NFS共享的方法
2007/03/16 PHP
PHP中的string类型使用说明
2010/07/27 PHP
yii实现创建验证码实例解析
2014/07/31 PHP
php判断两个日期之间相差多少个月份的方法
2015/06/18 PHP
配置eAccelerator和XCache扩展来加速PHP程序的执行
2015/12/22 PHP
php微信公众平台交互与接口详解
2016/11/28 PHP
PHP实现统计代码行数小工具
2019/09/19 PHP
Yii 框架使用Forms操作详解
2020/05/18 PHP
JavaScript将相对地址转换为绝对地址示例代码
2013/07/19 Javascript
jQuery EasyUI 菜单与按钮之创建简单的菜单和链接按钮
2015/11/18 Javascript
Jquery实现仿京东商城省市联动菜单
2015/11/19 Javascript
javascript判断firebug是否开启的方法
2016/11/23 Javascript
jQuery.cookie.js实现记录最近浏览过的商品功能示例
2017/01/23 Javascript
Node.js中Koa2在控制台输出请求日志的方法示例
2019/05/02 Javascript
基于 vue-skeleton-webpack-plugin 的骨架屏实战
2019/08/05 Javascript
[44:43]完美世界DOTA2联赛决赛日 FTD vs GXR 第一场 11.08
2020/11/11 DOTA
Python中os和shutil模块实用方法集锦
2014/05/13 Python
Python中利用sqrt()方法进行平方根计算的教程
2015/05/15 Python
python 环境变量和import模块导入方法(详解)
2017/07/11 Python
深入分析python数据挖掘 Json结构分析
2018/04/21 Python
基于python代码实现简易滤除数字的方法
2018/07/17 Python
实例介绍Python中整型
2019/02/11 Python
Python控制台实现交互式环境执行
2020/06/09 Python
html5+css3之CSS中的布局与Header的实现
2014/11/21 HTML / CSS
CSS3实现大小不一的粒子旋转加载动画
2016/04/21 HTML / CSS
ALDO英国官网:加拿大女鞋品牌
2018/02/19 全球购物
美国庭院家具购物网站:AlphaMarts
2019/04/10 全球购物
餐饮业创业计划书范文
2014/01/06 职场文书
艺术设计专业个人求职信
2014/04/10 职场文书
小学英语教师先进事迹
2014/05/28 职场文书
春节慰问信范文
2015/02/15 职场文书
绿色环保倡议书
2015/04/28 职场文书
学术研讨会主持词
2015/07/04 职场文书
原生Js 实现的简单无缝滚动轮播图的示例代码
2021/05/10 Javascript
SpringCloud Function SpEL注入漏洞分析及环境搭建
2022/04/08 Java/Android
vue3语法糖内的defineProps及defineEmits
2022/04/14 Vue.js