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 相关文章推荐
一个用php3编写的简单计数器
Oct 09 PHP
《PHP边学边教》(02.Apache+PHP环境配置――下篇)
Dec 13 PHP
解决PHP在DOS命令行下却无法链接MySQL的技术笔记
Dec 29 PHP
使ecshop模板中可引用常量的实现方法
Jun 02 PHP
采用PHP函数memory_get_usage获取PHP内存清耗量的方法
Dec 06 PHP
利用curl 多线程 模拟 并发的详解
Jun 14 PHP
PHP面向对象之旅:深入理解static变量与方法
Jan 06 PHP
PHP使用curl_multi实现并发请求的方法示例
Apr 29 PHP
Yii2框架加载css和js文件的方法分析
May 25 PHP
PHP For循环字母A-Z当超过26个字母时输出AA,AB,AC
Feb 16 PHP
PHP如何使用cURL实现Get和Post请求
Jul 11 PHP
PHP手机号码及邮箱正则表达式实例解析
Jul 11 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 实现类似js中alert() 提示框
2015/03/18 PHP
PHP 获取ip地址代码汇总
2015/07/05 PHP
header与缓冲区之间的深层次分析
2016/07/30 PHP
editable.js 基于jquery的表格的编辑插件
2011/10/24 Javascript
使用cluster 将自己的Node服务器扩展为多线程服务器
2014/11/10 Javascript
jquery中append()与appendto()用法分析
2014/11/14 Javascript
node.js中的fs.lchmodSync方法使用说明
2014/12/16 Javascript
jQuery中removeAttr()方法用法实例
2015/01/05 Javascript
微信小程序购物商城系统开发系列-目录结构介绍
2016/11/21 Javascript
Bootstrap基本组件学习笔记之面板(14)
2016/12/08 Javascript
jQuery实现 上升、下降、删除、添加一行代码
2017/03/06 Javascript
Nodejs回调加超时限制两种实现方法
2017/06/09 NodeJs
vue2.0中click点击当前li实现动态切换class
2017/06/21 Javascript
nodejs实现一个word文档解析器思路详解
2018/08/14 NodeJs
Vue.js实现可排序的表格组件功能示例
2019/02/19 Javascript
JavaScript中的垃圾回收与内存泄漏示例详解
2019/05/02 Javascript
微信小程序本地存储实现每日签到、连续签到功能
2019/10/09 Javascript
微信小程序上传帖子的实例代码(含有文字图片的微信验证)
2020/07/11 Javascript
基于postman获取动态数据过程详解
2020/09/08 Javascript
[01:12:44]VG vs Mineski Supermajor 败者组 BO3 第二场 6.6
2018/06/07 DOTA
浅析PyTorch中nn.Module的使用
2019/08/18 Python
Python 解析xml文件的示例
2020/09/29 Python
HelloFresh奥地利:立即订购烹饪盒
2019/02/22 全球购物
Fox Racing英国官网:越野摩托车和山地自行车服装
2020/02/26 全球购物
莫斯科大型旅游休闲商品超市:Camping.ru
2020/09/16 全球购物
关于Assembly命名空间的三个面试题
2015/07/23 面试题
工程预算与管理应届生求职信
2013/10/06 职场文书
护理专业优质毕业生自荐书
2014/01/31 职场文书
食品安全工作实施方案
2014/03/26 职场文书
全国税务系统先进集体事迹材料
2014/05/19 职场文书
标准单位租车协议书
2014/09/23 职场文书
创业计划之特色精品店
2019/08/12 职场文书
JavaScript 去重和重复次数统计
2021/03/31 Javascript
pytorch model.cuda()花费时间很长的解决
2021/06/01 Python
python使用BeautifulSoup 解析HTML
2022/04/24 Python
Golang gRPC HTTP协议转换示例
2022/06/16 Golang