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 include的妙用,实现路径加密
Jul 29 PHP
PHP的一个基础知识 表单提交
Jul 04 PHP
PHP无刷新上传文件实现代码
Sep 19 PHP
php中explode与split的区别介绍
Oct 03 PHP
Laravel 5框架学习之模型、控制器、视图基础流程
Apr 08 PHP
php 利用array_slice函数获取随机数组或前几条数据
Sep 30 PHP
CodeIgniter扩展核心类实例详解
Jan 20 PHP
php封装的表单验证类完整实例
Oct 19 PHP
php与c 实现按行读取文件实例代码
Jan 03 PHP
利用Homestead快速运行一个Laravel项目的方法详解
Nov 14 PHP
PHP依赖注入原理与用法分析
Aug 21 PHP
php快速导入大量数据的实例方法
Sep 23 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正则preg_replace_callback函数用法实例
2015/06/01 PHP
thinkphp5 框架结合plupload实现图片批量上传功能示例
2020/04/04 PHP
基于jquery和svg实现超炫酷的动画特效
2014/12/09 Javascript
JS特效实现图片自动播放并可控的效果
2015/07/31 Javascript
jQuery实现图像旋转动画效果
2016/05/29 Javascript
浅谈JavaScript 覆盖原型以及更改原型
2016/08/31 Javascript
微信小程序 setData的使用方法详解
2017/04/20 Javascript
Vue Ajax跨域请求实例详解
2017/06/20 Javascript
js实现点击按钮复制文本功能
2020/07/20 Javascript
微信小程序表单弹窗实例
2018/07/19 Javascript
基于vue-cli搭建多模块且各模块独立打包的项目
2019/06/12 Javascript
基于JavaScript实现贪吃蛇游戏
2020/03/16 Javascript
vue2.x数组劫持原理的实现
2020/04/19 Javascript
element日历calendar组件上月、今天、下月、日历块点击事件及模板源码
2020/07/27 Javascript
vue或react项目生产环境去掉console.log的操作
2020/09/02 Javascript
jquery插件实现轮播图效果
2020/10/19 jQuery
[01:22:42]2014 DOTA2华西杯精英邀请赛 5 24 DK VS LGD
2014/05/26 DOTA
python实现的AES双向对称加密解密与用法分析
2017/05/02 Python
Jupyter notebook远程访问服务器的方法
2018/05/24 Python
Python3.5面向对象程序设计之类的继承和多态详解
2019/04/24 Python
pyenv与virtualenv安装实现python多版本多项目管理
2019/08/17 Python
python统计指定目录内文件的代码行数
2019/09/19 Python
在notepad++中实现直接运行python代码
2019/12/18 Python
Django bulk_create()、update()与数据库事务的效率对比分析
2020/05/15 Python
Python基于smtplib模块发送邮件代码实例
2020/05/29 Python
pycharm 关掉syntax检查操作
2020/06/09 Python
一些高难度的SQL面试题
2016/11/29 面试题
银行实习生自我鉴定范文
2013/09/19 职场文书
鞋类设计与工艺专业销售求职信
2013/11/01 职场文书
前台文员岗位职责
2013/12/28 职场文书
经典导游欢迎词
2015/01/26 职场文书
冬季作息时间调整通知
2015/04/24 职场文书
学校世界艾滋病日宣传活动总结
2015/05/05 职场文书
妇产科护理心得体会
2016/01/22 职场文书
《草船借箭》教学反思
2016/02/23 职场文书
MySQL基础(一)
2021/04/05 MySQL