设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 创业者 手机 数据
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php使用dom解析含有中文字符xml文档

发布时间:2022-01-18 15:19 所属栏目:121 来源:互联网
导读:一般我们直接使用dom来处理xml文档时如果里面有中文就会把中文转换成乱码了,下面我们通过使用iconv()函数实现编码转换,防止中文乱码.代码如下: ?php //读取xml文件 $xmlDoc = new DOMDocument(); $xmlDoc-load(http://127.0.0.1/holiday.xml); //获得该xml
  一般我们直接使用dom来处理xml文档时如果里面有中文就会把中文转换成乱码了,下面我们通过使用iconv()函数实现编码转换,防止中文乱码.代码如下:
 
  <?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> 

(编辑:ASP站长网)

    网友评论
    推荐文章
      热点阅读