Heim > php教程 > php手册 > php使用dom解析含有中文字符xml文档

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

WBOY
Freigeben: 2016-06-13 09:55:58
Original
1021 Leute haben es durchsucht

一般我们直接使用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()函数实现编码转换,防止中文乱码

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage