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 相关文章推荐
php4的session功能评述(三)
Oct 09 PHP
从一个不错的留言本弄的mysql数据库操作类
Sep 02 PHP
无法在发生错误时创建会话,请检查 PHP 或网站服务器日志,并正确配置 PHP 安装最快的解决办法
Aug 01 PHP
openPNE常用方法分享
Nov 29 PHP
解析如何通过PHP函数获取当前运行的环境 来进行判断执行逻辑(小技巧)
Jun 25 PHP
php 启动报错如何解决
Jan 17 PHP
php去除字符串换行符示例分享
Feb 13 PHP
thinkPHP5 ACL用户权限模块用法详解
May 10 PHP
PHP超级全局变量【$GLOBALS,$_SERVER,$_REQUEST等】用法实例分析
Dec 11 PHP
laravel框架实现敏感词汇过滤功能示例
Feb 15 PHP
Thinkphp5+Redis实现商品秒杀代码实例讲解
Dec 29 PHP
PHP之header函数详解
Mar 02 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下利用curl判断远程文件是否存在的实现代码
2011/10/08 PHP
对于PHP 5.4 你必须要知道的
2013/08/07 PHP
php $_SERVER windows系统与linux系统下的区别说明
2014/02/14 PHP
php采用file_get_contents代替使用curl实例
2014/11/07 PHP
Laravel5中contracts详解
2015/03/02 PHP
PHP随机获取未被微信屏蔽的域名(微信域名检测)
2017/03/19 PHP
extjs fckeditor集成代码
2009/05/10 Javascript
关于js中alert弹出窗口文本换行问题简单详细说明
2012/12/11 Javascript
jquery实现excel导出的方法
2013/04/04 Javascript
jquery 判断滚动条到达了底部和顶端的方法
2014/04/02 Javascript
网页收藏夹显示ICO图标(代码少)
2015/08/04 Javascript
JavaScript的设计模式经典之建造者模式
2016/02/24 Javascript
jQuery实现放大镜效果实例代码
2016/03/17 Javascript
浅谈js和css内联外联注意事项
2016/06/30 Javascript
利用Angularjs和Bootstrap前端开发案例实战
2016/08/27 Javascript
Javascript防止图片拉伸的自适应处理方法
2017/12/26 Javascript
JavaScript中Array方法你该知道的正确打开方法
2018/09/11 Javascript
如何封装了一个vue移动端下拉加载下一页数据的组件
2019/01/06 Javascript
Vue.js+cube-ui(Scroll组件)实现类似头条效果的横向滚动导航条
2019/06/24 Javascript
使用Phantomjs和Node完成网页的截屏快照的方法
2019/07/16 Javascript
微信小程序分包加载代码实现方法详解
2019/09/23 Javascript
javascript设计模式 ? 观察者模式原理与用法实例分析
2020/04/22 Javascript
JavaScript监听键盘事件代码实现
2020/06/03 Javascript
jQuery实现本地存储
2020/12/22 jQuery
vue实现可移动的悬浮按钮
2021/03/04 Vue.js
python中MethodType方法介绍与使用示例
2017/08/03 Python
Python实现运行其他程序的四种方式实例分析
2017/08/17 Python
Python标准库shutil用法实例详解
2018/08/13 Python
python实现zabbix发送短信脚本
2018/09/17 Python
Python hashlib加密模块常用方法解析
2019/12/18 Python
Python3.6 + TensorFlow 安装配置图文教程(Windows 64 bit)
2020/02/24 Python
tensorflow下的图片标准化函数per_image_standardization用法
2020/06/30 Python
Pytorch之Tensor和Numpy之间的转换的实现方法
2020/09/03 Python
python实现三种随机请求头方式
2021/01/05 Python
HTML5给汉字加拼音收起展开组件的实现代码
2020/04/08 HTML / CSS
教师培训简讯
2015/07/20 职场文书