主要功能: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中使用DOM类读取XML文件
*
* @param
* @arrange 512-笔记网: www.512Pic.com
**/
<?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>';
}
}
?>
/*** 来自编程之家 jb51.cc(jb51.cc) ***/
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。