一般我們直接使用dom來處理xml文檔時如果裡面有中文就會把中文轉換成亂碼了,下面我們通過使用iconv()函數實現編碼轉換,防止中文亂碼.
| 代碼如下 |
複製代碼 |
//讀取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.'年'.' '; //獲得該年份下所有的假日 $holidays = $year->getElementsByTagName("holiday"); //對每一個假日進行處理 foreach($holidays as $holiday){ //獲得假日名稱 $holidayNames = $holiday->getElementsByTagName("holidayName"); $holidayName = $holidayNames->item(0)->nodeValue; echo iconv('utf-8','gb2312', $holidayName).': '.' '; //獲得假日的具體放假日期 $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.' '; //獲得針對該假日的調休日期 $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 ' '; } echo ' '; } } ?>
|
xml檔案
| 代碼如下 |
複製代碼 |
2012 元旦 2012-1-1 2012-1-3 2011-12-31 春節 2012-1-22 2012-1-28 2012-1-21 2012-1-29 清明節 2012-4-2 2012-4-4 2012-3-31 2012-4-1 勞動節 2012-4-29 2012-5-1 2012-4-28 端午節 2012-6-22 2012-6-24 中秋節、國慶節 2012-9-30 2012-10-7 2012-9-26 |
設計知識點:
1、XML節點迴圈讀取
2、用iconv()函數實現編碼轉換,防止中文亂碼
http://www.bkjia.com/PHPjc/632240.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/632240.htmlTechArticle一般我們直接使用dom來處理xml文檔時如果裡面有中文就會把中文轉換成亂碼了,下面我們通過使用iconv()函數實現編碼轉換,防止中文亂碼...