php 使用expat方式解析xml文件操作示例


Posted in PHP onNovember 26, 2019

本文实例讲述了php 使用expat方式解析xml文件操作。分享给大家供大家参考,具体如下:

test.xml:

<?xml version="1.0" encoding="UTF-8"?>
<notes>
 <note>
 <to>George</to>
 <from>John</from>
 <heading>Reminder</heading>
 <body>Don't forget the meeting!</body>
 </note>
 <note>
 <to>George2</to>
 <from>John2</from>
 <heading>Reminder2</heading>
 <body>Don't forget the meeting!2</body>
 </note>
 <instances>
 <instance st="192.168.234.121" />
 <instance st="192.168.234.28" />
 </instances>
</notes>

PHP文件:

<?php
// Initialize the XML parser
$parser = xml_parser_create();
// Function to use at the start of an element
function start($parser, $element_name, $element_attrs)
{
  switch ($element_name) {
    case "NOTE":
      echo "-- Note --<br />";
      break;
    case "TO":
      echo "To: ";
      break;
    case "FROM":
      echo "From: ";
      break;
    case "HEADING":
      echo "Heading: ";
      break;
    case "BODY":
      echo "Message: ";
  }
}
// Function to use at the end of an element
function stop($parser, $element_name)
{
  echo "<br />";
}
// Function to use when finding character data
function char($parser, $data)
{
  echo $data;
}
// Specify element handler
xml_set_element_handler($parser, "start", "stop");
// Specify data handler
xml_set_character_data_handler($parser, "char");
// Open XML file
// $fp = fopen("test.xml", "r");
// Read data
// while ($data = fread($fp, 10)) {
// xml_parse($parser, $data, feof($fp)) or die(sprintf("XML Error: %s at line %d", xml_error_string(xml_get_error_code($parser)), xml_get_current_line_number($parser)));
// }
// fclose($fp);
$data = file_get_contents("test.xml");
xml_parse($parser, $data) or die(sprintf("XML Error: %s at line %d", xml_error_string(xml_get_error_code($parser)), xml_get_current_line_number($parser)));
// Free the XML parser
xml_parser_free($parser);
?>

运行结果:

-- Note --
To: George
From: John
Heading: Reminder
Message: Don't forget the meeting!

-- Note --
To: George2
From: John2
Heading: Reminder2
Message: Don't forget the meeting!2

PHP 相关文章推荐
一个PHP日历程序
Dec 06 PHP
MYSQL 小技巧 -- LAST_INSERT_ID
Nov 24 PHP
php创建基本身份认证站点的方法详解
Jun 08 PHP
解析PHP中VC6 X86和VC9 X86的区别及 Non Thread Safe的意思
Jun 28 PHP
php5.5新数组函数array_column使用
Jul 08 PHP
PHP的魔术常量__METHOD__简介
Jul 08 PHP
php最简单的删除目录与文件实现方法
Nov 28 PHP
php查询mssql出现乱码的解决方法
Dec 29 PHP
PHP中使用php5-ffmpeg撷取视频图片实例
Jan 07 PHP
PHP6连接SQLServer2005的三部曲
Apr 15 PHP
php打乱数组二维数组多维数组的简单实例
Jun 17 PHP
ThinkPHP框架实现的MySQL数据库备份功能示例
May 24 PHP
thinkphp框架类库扩展操作示例
Nov 26 #PHP
如何在Laravel5.8中正确地应用Repository设计模式
Nov 26 #PHP
PHP 进程池与轮询调度算法实现多任务的示例代码
Nov 26 #PHP
PHP PDO和消息队列的个人理解与应用实例分析
Nov 25 #PHP
Laravel Eloquent分表方法并使用模型关联的实现
Nov 25 #PHP
PHP call_user_func和call_user_func_array函数的简单理解与应用分析
Nov 25 #PHP
使用Git实现Laravel项目的自动化部署
Nov 24 #PHP
You might like
鸡肋的PHP单例模式应用详解
2013/06/03 PHP
解析wamp5下虚拟机配置文档
2013/06/27 PHP
curl不使用文件存取cookie php使用curl获取cookie示例
2014/01/26 PHP
destoon实现会员商铺中指定会员或会员组投放广告的方法
2014/08/21 PHP
PHP常用函数之获取汉字首字母功能示例
2019/10/21 PHP
理解JAVASCRIPT中hasOwnProperty()的作用
2013/06/05 Javascript
解决用jquery load加载页面到div时,不执行页面js的问题
2014/02/22 Javascript
Nodejs学习笔记之Stream模块
2015/01/13 NodeJs
jQuery实现可用于博客的动态滑动菜单
2015/03/09 Javascript
纯JavaScript实现的兼容各浏览器的添加和移除事件封装
2015/03/28 Javascript
jquery点击改变class并toggle的实现代码
2016/05/15 Javascript
Bootstrap模态框(modal)垂直居中的实例代码
2016/08/18 Javascript
基于touch.js手势库+zepto.js插件开发图片查看器(滑动、缩放、双击缩放)
2016/11/17 Javascript
浅谈jquery的html方法里包含特殊字符的处理
2016/11/30 Javascript
详解vue渲染从后台获取的json数据
2017/07/06 Javascript
利用node.js如何创建子进程详解
2017/12/09 Javascript
微信小程序使用component自定义toast弹窗效果
2018/11/27 Javascript
[27:53]2014 DOTA2华西杯精英邀请赛 5 24 NewBee VS iG
2014/05/26 DOTA
python单线程实现多个定时器示例
2014/03/30 Python
Python itertools模块详解
2015/05/09 Python
python 读写txt文件 json文件的实现方法
2016/10/22 Python
使用paramiko远程执行命令、下发文件的实例
2017/10/01 Python
pandas 时间格式转换的实现
2019/07/06 Python
python字符串查找函数的用法详解
2019/07/08 Python
python 魔法函数实例及解析
2019/09/25 Python
python实现堆排序的实例讲解
2020/02/21 Python
需要知道的CSS3动画技术
2010/01/01 HTML / CSS
css3进阶之less实现星空动画的示例代码
2019/09/10 HTML / CSS
美国领先的家居装饰和礼品商店:Kirkland’s
2017/01/30 全球购物
实习护士自我鉴定
2013/10/13 职场文书
办护照工作证明范本
2014/01/14 职场文书
暑期政治学习心得体会
2014/09/02 职场文书
嘉年华活动新闻稿
2015/07/17 职场文书
“爱眼护眼,提前预防近视”倡议书3篇
2019/10/30 职场文书
导游词之西安大清真寺
2019/12/17 职场文书
CSS 圆形进度栏
2021/04/06 HTML / CSS