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

输出显示:

相关文章

  • PHP $_FILES函数详解

    PHP $_FILES函数详解

    在PHP中上传一个文件建一个表单要比ASP中灵活得多。具体的看代码。
    2011-03-03
  • PHP实现的激活用户注册验证邮箱功能示例

    PHP实现的激活用户注册验证邮箱功能示例

    这篇文章主要介绍了PHP实现的激活用户注册验证邮箱功能,详细分析了php邮件激活用户所涉及的数据库、邮件相关操作技巧,需要的朋友可以参考下
    2017-06-06
  • php批量转换文件夹下所有文件编码的函数类

    php批量转换文件夹下所有文件编码的函数类

    分享一个php转换文件夹下所有文件编码函数类,适合发布网站的其他编码版本,比如你有一个GBK版本 你想有一个UTF8版本 或者你只有GBK的源码 你想二次开发 但是你不想改变IDE的编码方式 你可以用这个程序将其批量转化为UTF8
    2017-08-08
  • php创建、获取cookie及基础要点分析

    php创建、获取cookie及基础要点分析

    这篇文章主要介绍了php创建、获取cookie及基础要点,实例分析了php操作cookie的技巧,需要的朋友可以参考下
    2015-01-01
  • 服务器变量 $_SERVER 的深入解析

    服务器变量 $_SERVER 的深入解析

    本篇文章是对服务器变量$_SERVER进行了详细的分析介绍,需要的朋友参考下
    2013-07-07
  • php switch语句多个值匹配同一代码块的实现

    php switch语句多个值匹配同一代码块的实现

    switch 语句一行接一行地执行(实际上是语句接语句),下面为大家介绍下php switch语句多个值匹配同一代码块
    2014-03-03
  • php提交过来的数据生成为txt文件

    php提交过来的数据生成为txt文件

    这篇文章主要介绍了php提交过来的数据生成为txt文件的相关资料,具有参考价值,需要的朋友可以参考下
    2016-04-04
  • php使用exec函数占用cpu较高的解决办法

    php使用exec函数占用cpu较高的解决办法

    在PHP中,使用`exec()`函数执行外部命令时,如果命令执行时间较长,可能会导致CPU占用较高,本文给大家详细介绍了php使用exec函数占用cpu较高的解决办法,文中有相关的代码示例供大家参考,需要的朋友可以参考下
    2023-12-12
  • php 结果集的分页实现代码

    php 结果集的分页实现代码

    php结果集的分页,后面都有详细的说明。最近的php将会让你学到更多。
    2009-03-03
  • PHP中串行化用法示例

    PHP中串行化用法示例

    这篇文章主要介绍了PHP中串行化用法,结合实例形式分析了php使用serialize与unserialize函数实现串行化与反串行化操作的相关技巧,需要的朋友可以参考下
    2016-11-11

最新评论