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 socke 向指定页面提交数据
Jul 23 PHP
PHP内核介绍及扩展开发指南―基础知识
Sep 11 PHP
解析php多线程下载远程多个文件
Jun 25 PHP
20个2014年最优秀的PHP框架回顾
Oct 22 PHP
PHP使用feof()函数读文件的方法
Nov 07 PHP
ecshop实现smtp发送邮件
Feb 03 PHP
php将12小时制转换成24小时制的方法
Mar 31 PHP
Linux+Nginx+MySQL下配置论坛程序Discuz的基本教程
Dec 23 PHP
Zend Framework入门教程之Zend_Config组件用法详解
Dec 09 PHP
Laravel中Facade的加载过程与原理详解
Sep 22 PHP
PHP设计模式之委托模式定义与用法简单示例
Aug 13 PHP
php反序列化长度变化尾部字符串逃逸(0CTF-2016-piapiapia)
Feb 15 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开发
2015/09/28 PHP
yii2使用GridView实现数据全选及批量删除按钮示例
2017/03/01 PHP
Extjs Ext.MessageBox.confirm 确认对话框详解
2010/04/02 Javascript
jQuery prev ~ siblings选择器使用介绍
2013/08/09 Javascript
通过复制Table生成word和excel的javascript代码
2014/01/20 Javascript
Thinkphp模板没有解析直接原样输出的解决方法
2014/10/31 Javascript
在JavaScript中操作时间之setYear()方法的使用
2015/06/12 Javascript
JavaScript人脸识别技术及脸部识别JavaScript类库Tracking.js
2015/09/14 Javascript
js实现商城星星评分的效果
2015/12/29 Javascript
jQuery实现三级菜单的代码
2016/05/09 Javascript
JQuery查找子元素find()和遍历集合each的方法总结
2017/03/07 Javascript
vue+vuecli+webpack中使用mockjs模拟后端数据的示例
2017/10/24 Javascript
ES6 对象的新功能与解构赋值介绍
2019/02/05 Javascript
浅谈Vue为什么不能检测数组变动
2019/10/14 Javascript
Vue实现浏览器打印功能的代码
2020/04/17 Javascript
js 解析 JSON 数据简单示例
2020/04/21 Javascript
vue仿携程轮播图效果(滑动轮播,下方高度自适应)
2021/02/11 Vue.js
使用Python对Excel进行读写操作
2017/03/30 Python
让Python更加充分的使用Sqlite3
2017/12/11 Python
python实现猜数字小游戏
2020/03/24 Python
Python3 集合set入门基础
2020/02/10 Python
详解python 条件语句和while循环的实例代码
2020/12/28 Python
美国排名第一的在线葡萄酒商店:Wine.com
2016/09/07 全球购物
Yahoo-PHP面试题4
2012/05/05 面试题
工程力学专业毕业生求职信
2013/10/06 职场文书
简短大学毕业感言
2014/01/18 职场文书
房地产财务部员工岗位职责
2014/03/12 职场文书
总经理工作职责范文
2014/03/14 职场文书
任命书范本大全
2014/06/06 职场文书
文秘应届生求职信
2014/07/05 职场文书
支部书记四风对照材料
2014/08/28 职场文书
敬老院志愿者活动总结
2015/05/06 职场文书
三八妇女节新闻稿
2015/07/17 职场文书
2015小学音乐教师个人工作总结
2015/07/21 职场文书
OpenCV-Python实现怀旧滤镜与连环画滤镜
2021/06/09 Python
Win11绿屏怎么办?Win11绿屏死机的解决方法
2021/11/21 数码科技