| 代碼如下 |
複製代碼 |
<?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>'; } } ?>
|
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> |
設計知識點:
1、XML節點迴圈讀取
2、用iconv()函數實現編碼轉換,防止中文亂碼