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 相关文章推荐
兼容firefox,chrome的网页灰度效果
Aug 08 PHP
php面向对象 字段的声明与使用
Jun 14 PHP
基于PHP文件操作的详细诠释
Jun 21 PHP
php使用curl访问https示例分享
Jan 17 PHP
php中rename函数用法分析
Nov 15 PHP
php判断文件上传类型及过滤不安全数据的方法
Dec 17 PHP
PHP CodeIgniter框架的工作原理研究
Mar 30 PHP
PHP中Notice错误常见解决方法
Apr 28 PHP
laravel自定义分页效果
Jul 23 PHP
PHP实现数组的笛卡尔积运算示例
Dec 15 PHP
thinkPHP5.1框架路由::get、post请求简单用法示例
May 06 PHP
laravel实现上传图片并在页面显示的例子
Oct 14 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解决的一个栈的面试题
2014/07/02 PHP
PHP中iconv函数转码时截断字符问题的解决方法
2015/01/21 PHP
PHP中文乱码解决方案
2015/03/05 PHP
php使用MySQL保存session会话的方法
2015/06/18 PHP
phpcms实现验证码替换及phpcms实现全站搜索功能教程详解
2017/12/13 PHP
jquery 分页控件实现代码
2009/11/30 Javascript
js变换显示图片的实例
2013/04/16 Javascript
Javascript call和apply区别及使用方法
2013/11/14 Javascript
js中的setInterval和setTimeout使用实例
2014/05/09 Javascript
浅谈Sticky组件的改进实现
2016/03/22 Javascript
Ajax异步获取html数据中包含js方法无效的解决方法
2017/02/20 Javascript
详解js静态资源文件请求的处理
2017/08/01 Javascript
vue debug 二种方法
2018/09/16 Javascript
AngularJS上传文件的示例代码
2018/11/10 Javascript
js数组去重的方法总结
2019/01/18 Javascript
layui监听select变化,以及设置radio选中的方法
2019/09/24 Javascript
javascript中正则表达式语法详解
2020/08/07 Javascript
Vue.js使用axios动态获取response里的data数据操作
2020/09/08 Javascript
Python判断直线和矩形是否相交的方法
2015/07/14 Python
Python在图片中添加文字的两种方法
2017/04/29 Python
利用Python批量提取Win10锁屏壁纸实战教程
2018/03/27 Python
在CentOS7下安装Python3教程解析
2020/07/09 Python
Pycharm2020.1安装无法启动问题即设置中文插件的方法
2020/08/07 Python
西班牙伏林航空公司:Vueling
2016/08/05 全球购物
C有"按引用传递"吗
2016/09/06 面试题
介绍一下XMLHttpRequest对象的常用方法和属性
2013/05/24 面试题
咖啡馆创业计划书
2014/01/26 职场文书
剪彩仪式主持词
2014/03/19 职场文书
水利专业大学生职业生涯规划书范文
2014/09/17 职场文书
鲁迅故居导游词
2015/02/05 职场文书
新入职员工工作总结
2015/10/15 职场文书
2016年国庆节宣传标语
2015/11/25 职场文书
2017公司年会主持人开幕词
2016/03/04 职场文书
800字作文之大雪
2019/12/04 职场文书
WordPress多语言翻译插件 - WPML使用教程
2021/04/01 PHP
FP-growth算法发现频繁项集——发现频繁项集
2021/06/24 Python