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中echo()和print()、require()和include()等易混淆函数的区别
Feb 22 PHP
php实现使用正则将文本中的网址转换成链接标签
Dec 03 PHP
php判断一个数组是否为有序的方法
Mar 27 PHP
php中使用gd库实现下载网页中所有图片
May 12 PHP
PHP的Socket通信之UDP通信实例
Jul 02 PHP
php代码架构的八点注意事项
Jan 25 PHP
php错误日志简单配置方法
Jul 11 PHP
PHP7标量类型declare用法实例分析
Sep 26 PHP
jQuery+php简单实现全选删除的方法
Nov 28 PHP
深入讲解PHP的对象注入(Object Injection)
Mar 01 PHP
微信封装的调用微信签名包的类库
Jun 08 PHP
thinkphp5使用无限极分类
Feb 18 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生成图片缩略图功能示例
2017/02/22 PHP
Discuz! 6.1_jQuery兼容问题
2008/09/23 Javascript
jQuery-onload让第一次页面加载时图片是淡入方式显示
2012/05/23 Javascript
Windows8下搭建Node.js开发环境教程
2014/09/03 Javascript
jquery 获取 outerHtml 包含当前节点本身的代码
2014/10/30 Javascript
使用JQuery实现智能表单验证功能
2016/03/08 Javascript
多功能jQuery树插件zTree实现权限列表简单实例
2016/07/12 Javascript
Ionic2系列之使用DeepLinker实现指定页面URL
2016/11/21 Javascript
AngularJS实现用户登录状态判断的方法(Model添加拦截过滤器,路由增加限制)
2016/12/12 Javascript
nodejs 子进程正确的打开方式
2017/07/03 NodeJs
vuex中的 mapState,mapGetters,mapActions,mapMutations 的使用
2018/04/13 Javascript
详解node.js 事件循环
2020/07/22 Javascript
vue 实现根据data中的属性值来设置不同的样式
2020/08/04 Javascript
[02:39]我与DAC之Newbee.Moogy:从论坛到TI
2018/03/26 DOTA
微信跳一跳python自动代码解读1.0
2018/01/12 Python
Cython编译python为so 代码加密示例
2019/12/23 Python
解决Jupyter无法导入已安装的 module问题
2020/04/17 Python
实现ECharts双Y轴左右刻度线一致的例子
2020/05/16 Python
keras K.function获取某层的输出操作
2020/06/29 Python
vscode调试django项目的方法
2020/08/06 Python
解决pycharm导入numpy包的和使用时报错:RuntimeError: The current Numpy installation (‘D:\\python3.6\\lib\\site-packa的问题
2020/12/08 Python
HTML5打开本地app应用的方法
2016/03/31 HTML / CSS
HTML5操作WebSQL数据库的实例代码
2017/08/26 HTML / CSS
路易威登和香奈儿手袋:LuxeDH
2017/01/12 全球购物
美国开幕式潮店:Opening Ceremony
2018/02/10 全球购物
Vrbo西班牙:预订您的度假公寓(公寓、乡村房屋…)
2020/04/27 全球购物
应届毕业生求职信范例分享
2013/12/17 职场文书
运动会入场解说词300字
2014/01/25 职场文书
化妆品店促销方案
2014/02/24 职场文书
关于青春的演讲稿三分钟
2014/08/22 职场文书
付款委托书范本
2014/10/05 职场文书
2014年妇女工作总结
2014/12/06 职场文书
深度学习小工程练习之垃圾分类详解
2021/04/14 Python
OpenCV-Python实现怀旧滤镜与连环画滤镜
2021/06/09 Python
Java处理延时任务的常用几种解决方案
2022/06/01 Java/Android
TypeScript 内置高级类型编程示例
2022/09/23 Javascript