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 相关文章推荐
模拟OICQ的实现思路和核心程序(二)
Oct 09 PHP
php 文件状态缓存带来的问题
Dec 14 PHP
php中强制下载文件的代码(解决了IE下中文文件名乱码问题)
May 09 PHP
php提示Call-time pass-by-reference has been deprecated in的解决方法[已测]
May 06 PHP
php调用方法mssql_fetch_row、mssql_fetch_array、mssql_fetch_assoc和mssql_fetch_objcect读取数据的区别
Aug 08 PHP
如何让CI框架支持service层
Oct 29 PHP
php调用KyotoTycoon简单实例
Apr 02 PHP
PHP安全下载文件的方法
Apr 07 PHP
php源码之将图片转化为data/base64数据流实例详解
Nov 27 PHP
Ajax请求PHP后台接口返回信息的实例代码
Aug 21 PHP
php基于Redis消息队列实现的消息推送的方法
Nov 28 PHP
PHP 代码简洁之道(小结)
Oct 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
Ajax+PHP边学边练 之五 图片处理
2009/12/03 PHP
php下将XML转换为数组
2010/01/01 PHP
使用php从身份证号中获取一系列线索(星座、生肖、生日等)
2016/05/11 PHP
thinkphp3.2同时连接两个数据库的简单方法
2019/08/13 PHP
wordpress之js库集合研究介绍
2007/08/17 Javascript
js Flash插入函数免激活代码
2009/03/31 Javascript
js 弹出框 替代浏览器的弹出框
2010/10/29 Javascript
javascript 学习笔记(一)DOM基本操作
2011/04/08 Javascript
Javascript 页面模板化很多人没有使用过的方法
2012/06/05 Javascript
jtable列中自定义button示例代码
2013/11/21 Javascript
快速掌握WordPress中加载JavaScript脚本的方法
2015/12/17 Javascript
深入学习jQuery Validate表单验证
2016/01/18 Javascript
浅谈angularJS的$watch失效问题的解决方案
2017/08/11 Javascript
基于Vue开发数字输入框组件
2017/12/19 Javascript
解决vue单页路由跳转后scrollTop的问题
2018/09/03 Javascript
Vue.js更改调试地址端口号的实例
2018/09/19 Javascript
js原生map实现的方法总结
2020/01/19 Javascript
Python collections模块实例讲解
2014/04/07 Python
常见的python正则用法实例讲解
2016/06/21 Python
Python实现基本数据结构中队列的操作方法示例
2017/12/04 Python
Pyspider中给爬虫伪造随机请求头的实例
2018/05/07 Python
Python面向对象之类和对象属性的增删改查操作示例
2018/12/14 Python
解决python3 pika之连接断开的问题
2018/12/18 Python
python爬虫开发之selenium模块详细使用方法与实例全解
2020/03/09 Python
在pycharm中文件取消用 pytest模式打开的操作
2020/09/01 Python
浅谈Python xlwings 读取Excel文件的正确姿势
2021/02/26 Python
使用HTML5 Canvas为图片填充颜色和纹理的教程
2016/03/21 HTML / CSS
HTML5 实现图片上传预处理功能
2020/02/06 HTML / CSS
大学生毕业自我鉴定
2013/11/06 职场文书
优秀管理者获奖感言
2014/02/17 职场文书
《邮票齿孔的故事》教学反思
2014/02/22 职场文书
销售目标责任书
2014/07/23 职场文书
运动会主持词大全
2015/07/02 职场文书
《吃水不忘挖井人》教学反思
2016/02/22 职场文书
高中英语教学反思范文
2016/03/02 职场文书
解决Golang中ResponseWriter的一个坑
2021/04/27 Golang