php中使用DOM類讀取XML文件的實現(xiàn)代碼
更新時間:2011年12月14日 23:34:40 作者:
php中使用DOM類讀取XML文件的實現(xiàn)代碼,學習php的朋友可以參考下。
主要功能:php中使用DOM類讀取XML文件
設計知識點:
1、XML節(jié)點循環(huán)讀取
2、用iconv()函數(shù)實現(xiàn)編碼轉(zhuǎn)換,防止中文亂碼
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>春節(jié)</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>清明節(jié)</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>勞動節(jié)</holidayName>
<daysOff>
<from>2012-4-29</from>
<to>2012-5-1</to>
</daysOff>
<overTime>
<day>2012-4-28</day>
</overTime>
</holiday>
<holiday>
<holidayName>端午節(jié)</holidayName>
<daysOff>
<from>2012-6-22</from>
<to>2012-6-24</to>
</daysOff>
<overTime/>
</holiday>
<holiday>
<holidayName>中秋節(jié)、國慶節(jié)</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>';
//獲得針對該假日的調(diào)休日期
$overTimes = $holiday->getElementsByTagName("overTime");
$overTime = $overTimes->item(0);
$days = $overTime->getElementsByTagName("day");
//通過判斷,有調(diào)休日期則顯示,沒有則不顯示
if($days->length!=0){
echo '調(diào)休日為:';
foreach($days as $day){
echo $day->nodeValue.' ';
}
echo '</br>';
}
echo '</br>';
}
}
?>
設計知識點:
1、XML節(jié)點循環(huán)讀取
2、用iconv()函數(shù)實現(xiàn)編碼轉(zhuǎn)換,防止中文亂碼
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>春節(jié)</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>清明節(jié)</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>勞動節(jié)</holidayName>
<daysOff>
<from>2012-4-29</from>
<to>2012-5-1</to>
</daysOff>
<overTime>
<day>2012-4-28</day>
</overTime>
</holiday>
<holiday>
<holidayName>端午節(jié)</holidayName>
<daysOff>
<from>2012-6-22</from>
<to>2012-6-24</to>
</daysOff>
<overTime/>
</holiday>
<holiday>
<holidayName>中秋節(jié)、國慶節(jié)</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>';
//獲得針對該假日的調(diào)休日期
$overTimes = $holiday->getElementsByTagName("overTime");
$overTime = $overTimes->item(0);
$days = $overTime->getElementsByTagName("day");
//通過判斷,有調(diào)休日期則顯示,沒有則不顯示
if($days->length!=0){
echo '調(diào)休日為:';
foreach($days as $day){
echo $day->nodeValue.' ';
}
echo '</br>';
}
echo '</br>';
}
}
?>
輸出顯示:
您可能感興趣的文章:
- php解析html類庫simple_html_dom(詳細介紹)
- PHP XML操作類DOMDocument
- php中DOMDocument簡單用法示例代碼(XML創(chuàng)建、添加、刪除、修改)
- PHP使用DOMDocument類生成HTML實例(包含常見標簽元素)
- PHP simple_html_dom.php+正則 采集文章代碼
- PHP 中 DOMDocument保存xml時中文出現(xiàn)亂碼問題的解決方案
- PHP基于DOMDocument解析和生成xml的方法分析
- 解析php DOMElement 操作xml 文檔的實現(xiàn)代碼
- PHP 使用 DOM 解析器刪除指定a鏈接的方法實例分析
相關文章
php批量轉(zhuǎn)換文件夾下所有文件編碼的函數(shù)類
分享一個php轉(zhuǎn)換文件夾下所有文件編碼函數(shù)類,適合發(fā)布網(wǎng)站的其他編碼版本,比如你有一個GBK版本 你想有一個UTF8版本 或者你只有GBK的源碼 你想二次開發(fā) 但是你不想改變IDE的編碼方式 你可以用這個程序?qū)⑵渑哭D(zhuǎn)化為UTF82017-08-08php switch語句多個值匹配同一代碼塊的實現(xiàn)
switch 語句一行接一行地執(zhí)行(實際上是語句接語句),下面為大家介紹下php switch語句多個值匹配同一代碼塊2014-03-03