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 相关文章推荐
IIS下配置Php+Mysql+zend的图文教程
Dec 08 PHP
PHP注释实例技巧
Oct 03 PHP
PHP 中关于ord($str)&amp;gt;0x80的详细说明
Sep 23 PHP
php读取大文件示例分享(文件操作类)
Apr 13 PHP
PHP实现下载断点续传的方法
Nov 12 PHP
PHP使用Face++接口开发微信公众平台人脸识别系统的方法
Apr 17 PHP
Smarty模板引擎缓存机制详解
May 23 PHP
PHP实现简单ajax Loading加载功能示例
Dec 28 PHP
老生常谈PHP位运算的用途
Mar 12 PHP
PHP文字转图片功能原理与实现方法分析
Aug 31 PHP
PHP排序二叉树基本功能实现方法示例
May 26 PHP
使用vs code编辑调试php配置的方法
Jan 29 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
ftp类(example.php)
2006/10/09 PHP
用PHP实现文件上传二法
2006/10/09 PHP
PHP实现上传文件并存进数据库的方法
2015/07/16 PHP
javascript 基础篇3 类,回调函数,内置对象,事件处理
2012/03/14 Javascript
jquery 使用简明教程
2014/03/05 Javascript
Js实现滚动变色的文字效果
2014/06/16 Javascript
js propertychange和oninput事件
2014/09/28 Javascript
如何在node的express中使用socket.io
2014/12/15 Javascript
Javascript基础教程之while语句
2015/01/18 Javascript
利用fecha进行JS日期处理
2016/11/21 Javascript
JS 实现缓存算法的示例(FIFO/LRU)
2018/03/20 Javascript
推荐一个基于Node.js的表单验证库
2019/02/15 Javascript
微信小程序基于picker实现级联菜单
2019/02/15 Javascript
vue3.0 搭建项目总结(详细步骤)
2019/05/20 Javascript
js类的继承定义与用法分析
2019/06/21 Javascript
vue中使用rem布局代码详解
2019/10/30 Javascript
微信小程序 SOTER 生物认证DEMO 指纹识别功能
2019/12/13 Javascript
使用vue-cli3+typescript的项目模板创建工程的教程
2020/02/28 Javascript
通过实例解析chrome如何在mac环境中安装vue-devtools插件
2020/07/10 Javascript
[51:52]Liquid vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.24
2019/09/10 DOTA
Python实现发送QQ邮件的封装
2017/07/14 Python
Python实现带参数与不带参数的多重继承示例
2018/01/30 Python
python爬虫获取新浪新闻教学
2018/12/23 Python
python打印文件的前几行或最后几行教程
2020/02/13 Python
基于spring boot 日志(logback)报错的解决方式
2020/02/20 Python
解析HTML5中的新功能本地存储localStorage
2016/03/01 HTML / CSS
EVE LOM英国官网:全世界最好的洁面膏
2017/10/30 全球购物
Nordgreen英国官网:斯堪的纳维亚设计师手表
2018/10/24 全球购物
StubHub美国:购买或出售您的门票
2019/07/09 全球购物
幼儿园中班新学期寄语
2014/01/18 职场文书
小学生美德少年事迹
2014/02/02 职场文书
学习决心书
2014/03/11 职场文书
创建文明城市倡议书
2015/04/28 职场文书
企业宣传稿范文
2015/07/23 职场文书
2016年社区中秋节活动总结
2016/04/05 职场文书
mysql实现将字符串字段转为数字排序或比大小
2022/06/14 MySQL