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

   2015-11-12 0
核心提示: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中使用DOM类读取XML文件的实现代码

 
标签: DOM XML
反对 0举报 0 评论 0
 

免责声明:本文仅代表作者个人观点,与乐学笔记(本网)无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
    本网站有部分内容均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,若因作品内容、知识产权、版权和其他问题,请及时提供相关证明等材料并与我们留言联系,本网站将在规定时间内给予删除等相关处理.

  • Chapter 09 - NSUndoManager (C#实现 + 全网原创)
    Chapter 09 - NSUndoManager (C#实现 + 全网原
    此例子针对NSDocument实现了tableview 每一行添加/删除的undo/redo,以及每一个单元格内容编辑的undo/redo。基于NSDocument类的实现。PersonModel + NSMutableArray和前面的例子是一样的,就不重复贴了。采用Array Controller实现view-based tableview的绑定
    02-09
  • lua math.random伪随机问题浅析
    我们的一般编写随机如下:-- 获取当前系统时间(秒)作为随机种子,有时也会使用毫秒:os.time() * 1000math.randomseed(os.time())--[[参数的方式:1. 不带参数调用时,获取的是[0,1)范围内的随机浮点数2. 带一个整型参数时,获取的是[1,n]范围内的随机整数3.
    02-09
  • 用随机投掷飞镖法计算Pi值(Randomness Throwing dart Pi Python)
    用随机投掷飞镖法计算Pi值(Randomness Throwin
    画一个边长为r的正方形和半径为r的四分之一的圆(如下图所示),向上面随机投掷飞镖,通过计算落在星星区域和整体区域的飞镖比例,即可求出π值。公式推导如下: 假设正方形的边长r为1,那么飞镖落在星星区域内的任意点(x, y),其坐标的平方相加值(x2+y2
    02-09
  • PHP中利用DOM创建xml文档 dom解析xml文件
    DOM创建xml文档用dom创建如下文档:booklist  book     title天龙八部/title    author金庸/author    content      ![CDATA[ 天龙八部是金庸写的一本武侠小说,非常好看! ]]    /content  /book/booklist实现步骤:1、创建DOM对
    02-09
  • C# Random类随机函数实例详解 c罗
    C# Random类随机函数实例详解 c罗
    目录引言一、创建界面二、效果展示三、Random类方法四、代码逻辑总结:引言Random类是非常值得学习的一个类,所以我们今天一起学习一下Random这个类,对于模拟数据这个是随机类可是一个好东西,我们可以用这个随机函数模拟我们想要的数据,从而实现数据模拟,
  • ruby 中使用 Dom技术来查找页面元素
    有些时候可能会根据一些有限的信息,来查找页面的元素,这里举一个例子利用页面文字来查找所在的标签,以淘宝的登录页面为例,使用以下代码可以实现根据账户名来识别对应的节点名称: end
    02-08
  • How To: Generate a Random Password (C#/VB.NE
     How To: Generate a Random Password (C#/VB.NET)The code below can be used to generate a strong random password, which does not contain ambiguous characters (such as [1,l,I] or [O,0]). Code samples are provided in C# and Visual Basic.NET. C
    02-08
  • Dynamically creating applications using Syst
    IntroductionThe System.CodeDom namespace in .net allows the users to dynamically compile and create assemblies. This concept is used by ASP.NET internally. The article provides an insight on how to create assemblies dynamically.The followin
    02-08
  • Java生成随机数之Random与ThreadLocalRandom性能比较详解
    Java生成随机数之Random与ThreadLocalRandom性
    目录前言Random的使用实现原理ThreadLocalRandom的使用实现原理性能对比总结前言大家项目中如果有生成随机数的需求,我想大多都会选择使用Random来实现,它内部使用了CAS来实现。 实际上,JDK1.7之后,提供了另外一个生成随机数的类ThreadLocalRandom,那么他
  • Java中的javaBean、vo、entity、domain和pojo
    Java中的javaBean、vo、entity、domain和pojo
    目录一、javaBean二、vo(view object)三、Entity四、domain五、pojo(Plain Old Java Objects,普通 Java 对象)总结一、javaBeanjavaBean:一种类的规格编写规范javaBean在MVC设计模型中是model,又称模型层,在一般的程序中,我们称它为数据层,就是用来
点击排行