zoukankan      html  css  js  c++  java
  • php中使用DOM类读取XML文件

    主要功能:php中使用DOM类读取XML文件

    设计知识点:

    1、XML节点循环读取

    2、用iconv()函数实现编码转换,防止中文乱码

    holiday.xml文件如下

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

    输出显示:


    推荐一个自己业余时间开发的网盘搜索引擎,360盘搜www.360panso.com

  • 相关阅读:
    VS2015新建项目无法选择framework 4.6.2
    AngularGauge 属性解析(转载)
    JAVA基础总结2
    JAVA基础总结
    今天做项目用到框架,关于angual,然后自己整理了一番,自己上网也看了看。
    晚上闲来无事,整理一下字符串和数组常用的方法,分享给大家。
    今天写项目时,突然发现canvas的一些公式不记得了,所以整理了一番,分享给大家。
    在公司没事,随手写写
    今天做项目时,用到了好多关于js的知识点,有的忘记了,然后晚上回来自己整理一番,明天继续整理。哈哈,分享给大家。
    DOM相关知识点以及原型
  • 原文地址:https://www.cnblogs.com/eczhou/p/2287322.html
Copyright © 2011-2022 走看看