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 相关文章推荐
smarty的保留变量问题
Oct 23 PHP
PHP中对于浮点型的数据需要用不同的方法解决
Mar 11 PHP
php调用shell的方法
Nov 05 PHP
PHP扩展模块memcached长连接使用方法分析
Dec 24 PHP
PHP使用GETDATE获取当前日期时间作为一个关联数组的方法
Mar 19 PHP
浅谈PHP中JSON数据操作
Jul 01 PHP
php中switch语句用法详解
Aug 17 PHP
PHP 闭包详解及实例代码
Sep 28 PHP
PHP实现生成带背景的图形验证码功能
Oct 03 PHP
php版微信支付api.mch.weixin.qq.com域名解析慢原因与解决方法
Oct 12 PHP
PHP实现文件上传与下载
Aug 28 PHP
php访问对象中的成员的实例方法
Nov 17 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做服务器和web前端的界面进行交互
2016/10/31 PHP
PHP5.0~5.6 各版本兼容性cURL文件上传功能实例分析
2018/05/11 PHP
Flexigrid在IE下不显示数据的处理的解决方法
2013/10/24 Javascript
javascript中动态加载js文件多种解决办法总结
2013/11/15 Javascript
js 跳出页面的frameset框架示例介绍
2013/12/23 Javascript
javascript实现的弹出层背景置灰-模拟(easyui dialog)
2013/12/27 Javascript
邮箱下拉自动填充选择示例代码附图
2014/04/03 Javascript
JS回调函数的应用简单实例
2014/09/17 Javascript
详解javascript数组去重问题
2015/11/06 Javascript
很不错的两款Bootstrap Icon图标选择组件
2016/01/28 Javascript
js判断登陆用户名及密码是否为空的简单实例
2016/05/16 Javascript
Javascript实现数组中的元素上下移动
2017/04/28 Javascript
JavaScript无操作后屏保功能的实现方法
2017/07/04 Javascript
JS实现的ajax和同源策略(实例讲解)
2017/12/01 Javascript
spirngmvc js传递复杂json参数到controller的实例
2018/03/29 Javascript
详解关于html,css,js三者的加载顺序问题
2019/04/10 Javascript
vue 出现data-v-xxx的原因及解决
2020/08/04 Javascript
VUE中setTimeout和setInterval自动销毁案例
2020/09/07 Javascript
vue form表单post请求结合Servlet实现文件上传功能
2021/01/22 Vue.js
[00:12]2018DOTA2亚洲邀请赛 Somnus丶M出阵单挑
2018/04/06 DOTA
linux 下实现python多版本安装实践
2014/11/18 Python
Python isinstance函数介绍
2015/04/14 Python
python实现最长公共子序列
2018/05/22 Python
python的常见矩阵运算(小结)
2019/08/07 Python
Python tornado上传文件的功能
2020/03/26 Python
Django模板获取field的verbose_name实例
2020/05/19 Python
keras 两种训练模型方式详解fit和fit_generator(节省内存)
2020/07/03 Python
一家专门做特卖的网站:唯品会
2016/10/09 全球购物
一套VC试题
2015/01/23 面试题
英语专业推荐信
2013/11/16 职场文书
学生打架检讨书1000字
2014/01/16 职场文书
会计专业个人自我鉴定
2014/03/21 职场文书
关于奉献的演讲稿
2014/05/21 职场文书
村当支部个人对照检查材料思想汇报
2014/10/06 职场文书
社区务虚会发言材料
2014/10/20 职场文书
微信小程序实现录音Record功能
2021/05/09 Javascript