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执行linux系统命令的常用函数使用说明
Apr 27 PHP
ezSQL PHP数据库操作类库
May 16 PHP
手把手教你打印出PDF(关于fpdf的简单应用)
Jun 25 PHP
php多功能图片处理类分享(php图片缩放类)
Mar 14 PHP
PHP实现通用alert函数的方法
Mar 11 PHP
php动态变量定义及使用
Jun 10 PHP
PHP实现通过正则表达式替换回调的内容标签
Jun 15 PHP
php操作xml并将其插入数据库的实现方法
Sep 08 PHP
php使用include 和require引入文件的区别
Feb 16 PHP
PHP使用文件锁解决高并发问题示例
Mar 29 PHP
php curl获取https页面内容,不直接输出返回结果的设置方法
Jan 15 PHP
yii框架结合charjs统计上一年与当前年数据的方法示例
Apr 04 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
DSP接收机前端设想
2021/03/02 无线电
德生S2000南麂列岛台湾FM收听记录
2021/03/02 无线电
php 获得汉字拼音首字母的函数
2009/08/01 PHP
Thinkphp模板标签if和eq的区别和比较实例分析
2015/07/01 PHP
PHP 中魔术常量的实例详解
2017/10/26 PHP
PHP实现模拟http请求的方法分析
2017/12/20 PHP
javascript之对系统的toFixed()方法的修正
2007/05/08 Javascript
用Javascript 获取页面元素的位置的代码
2009/09/25 Javascript
js实现在字符串中提取数字
2013/11/05 Javascript
JavaScript设计模式学习之“类式继承”
2015/03/12 Javascript
js与jQuery实现checkbox复选框全选/全不选的方法
2016/01/05 Javascript
jQuery动画效果实现图片无缝连续滚动
2016/01/12 Javascript
jQuery 实现倒计时天,时,分,秒功能
2018/07/31 jQuery
JS闭包经典实例详解
2018/12/20 Javascript
@angular前端项目代码优化之构建Api Tree的方法
2018/12/24 Javascript
微信小程序遍历Echarts图表实现多个饼图
2019/04/25 Javascript
如何使用Javascript中的this关键字
2020/05/28 Javascript
python实现对一个完整url进行分割的方法
2015/04/29 Python
python查询sqlite数据表的方法
2015/05/08 Python
Python实现SVN的目录周期性备份实例
2015/07/17 Python
python开发之list操作实例分析
2016/02/22 Python
Python实现约瑟夫环问题的方法
2016/05/03 Python
Python中函数eval和ast.literal_eval的区别详解
2017/08/10 Python
Django框架创建项目的方法入门教程
2019/11/04 Python
Pytorch 搭建分类回归神经网络并用GPU进行加速的例子
2020/01/09 Python
Django更新models数据库结构步骤
2020/04/01 Python
C#里面可以避免一个类被其他类继承么?如何?
2013/09/26 面试题
学术会议主持词
2014/03/17 职场文书
绿色学校实施方案
2014/03/31 职场文书
法制宣传教育方案
2014/05/09 职场文书
违反交通法规检讨书
2014/09/10 职场文书
党的群众路线教育实践活动对照检查材料(教师)
2014/09/24 职场文书
2015年财务试用期工作总结
2014/12/24 职场文书
酒会开场白大全
2015/06/01 职场文书
Django实现翻页的示例代码
2021/05/24 Python
Redis 的查询很快的原因解析及Redis 如何保证查询的高效
2022/03/16 Redis