php中使用DOM类读取XML文件的实现代码

 更新时间:2011年12月14日 23:34:40   作者:   我要评论
php中使用DOM类读取XML文件的实现代码,学习php的朋友可以参考下。
主要功能:php中使用DOM类读取XML文件
设计知识点:
1、XML节点循环读取
2、用iconv()函数实现编码转换,防止中文乱码
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>春节</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>

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','utf-8', $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>';
}
}
?>

输出显示:

相关文章

  • php使用Jpgraph创建折线图效果示例

    php使用Jpgraph创建折线图效果示例

    这篇文章主要介绍了php使用Jpgraph创建折线图效果,结合实例形式分析了php使用Jpgraph绘制折线图的原理、实现步骤与相关操作技巧,需要的朋友可以参考下
    2017-02-02
  • php简单操作mysql金沙国际官网的类

    php简单操作mysql金沙国际官网的类

    这篇文章主要介绍了php简单操作mysql金沙国际官网的类,涉及php操作mysql的连接、查询、插入、删除等基本操作方法,非常具有实用价值,需要的朋友可以参考下
    2015-04-04
  • 你应该知道PHP浮点数知识

    你应该知道PHP浮点数知识

    这篇文章主要介绍了你应该知道PHP浮点数知识,本文讲解了PHP浮点数、PHP数字的临界值,精度损失等问题,需要的朋友可以参考下
    2015-05-05
  • php 无法加载mysql的module的时候的配置的解决方案引发的思考

    php 无法加载mysql的module的时候的配置的解决方案引发的思考

    今天配置php 的时候,发现没配起mysql ,wordpress提示我需要 mysql 的module之后上google搜索,大多数都是说php.ini 没加载起
    2012-01-01
  • jQuery+php简单实现全选删除的方法

    jQuery+php简单实现全选删除的方法

    这篇文章主要介绍了jQuery+php简单实现全选删除的方法,涉及php结合jQuery操作表单的全选及ajax交互实现删除的相关技巧,需要的朋友可以参考下
    2016-11-11
  • PHP5中新增stdClass 内部保留类

    PHP5中新增stdClass 内部保留类

    stdClass类是PHP的一个内部保留类,初始时没有成员变量也没成员方法,所有的魔术方法都被设置为NULL,可以使用其传递变量参数,但是没有可以调用的方法。
    2011-06-06
  • php隐藏实际地址的文件下载方法

    php隐藏实际地址的文件下载方法

    这篇文章主要介绍了php隐藏实际地址的文件下载方法,涉及php中header与file_get_contents方法的相关使用技巧,非常具有实用价值,需要的朋友可以参考下
    2015-04-04
  • PHP实现简单聊天室(附源码)

    PHP实现简单聊天室(附源码)

    本篇文章是对PHP实现聊天室的源代码进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • PHP CKEditor 上传图片实现代码

    PHP CKEditor 上传图片实现代码

    CKEditor的原包中没有包含图片的上传服务器端处理文件,其公司的另一款开源产品:CKFinder做了很好的补充。但是要下载这个源代码再进行配置,虽然方便了很多,但是仅仅为了上传图片,却要使用这么大的整个系统来使用,确实有点大材小用。
    2009-11-11
  • FastCGI 进程意外退出造成500错误

    FastCGI 进程意外退出造成500错误

    这篇文章主要介绍了FastCGI 进程意外退出造成500错误的相关资料,需要的朋友可以参考下
    2015-07-07

最新评论