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 相关文章推荐
初学者入门:细述PHP4的核心Zend
Sep 05 PHP
PHP+DBM的同学录程序(3)
Oct 09 PHP
PHP file_get_contents 函数超时的几种解决方法
Jul 30 PHP
php中批量修改文件后缀名的函数代码
Oct 23 PHP
PHP OPP机制和模式简介(抽象类、接口和契约式编程)
Jun 09 PHP
PHP高级编程实例:编写守护进程
Sep 02 PHP
PHP获取一年有几周以及每周开始日期和结束日期
Aug 06 PHP
PHP截取IE浏览器并缩小原图的方法
Mar 04 PHP
php判断用户是否关注微信公众号
Jul 22 PHP
微信公众号开发之文本消息自动回复php代码
Aug 08 PHP
PHP实现多图上传(结合uploadify插件)思路分析
Nov 30 PHP
php 函数中静态变量使用的问题实例分析
Mar 05 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生成缩略图的函数代码(修改版)
2011/01/18 PHP
C#静态方法与非静态方法实例分析
2014/09/22 PHP
滚动经典最新话题[prototype框架]下编写
2006/10/03 Javascript
js实现点击每个li节点,都弹出其文本值及修改
2016/12/15 Javascript
原生JS轮播图插件
2017/02/09 Javascript
原生js实现吸顶效果
2017/03/13 Javascript
创建简单的node服务器实例(分享)
2017/06/23 Javascript
详解ES6之用let声明变量以及let loop机制
2017/07/15 Javascript
JS实现的JSON序列化操作简单示例
2018/07/02 Javascript
webstorm+vue初始化项目的方法
2018/10/18 Javascript
NodeJS模块与ES6模块系统语法及注意点详解
2019/01/04 NodeJs
Vue 表情包输入组件的实现代码
2019/01/21 Javascript
详解Vue webapp项目通过HBulider打包原生APP(vue+webpack+HBulider)
2019/02/02 Javascript
如何在Node和浏览器控制台中打印彩色文字
2020/01/09 Javascript
在vue中使用eslint,配合vscode的操作
2020/11/09 Javascript
python利用datetime模块计算时间差
2015/08/04 Python
Python时间的精准正则匹配方法分析
2017/08/17 Python
Python2随机数列生成器简单实例
2017/09/04 Python
Python2和Python3中print的用法示例总结
2017/10/25 Python
python3实现windows下同名进程监控
2018/06/21 Python
使用python打印十行杨辉三角过程详解
2019/07/10 Python
python的等深分箱实例
2019/11/22 Python
使用 Supervisor 监控 Python3 进程方式
2019/12/05 Python
python实现高斯判别分析算法的例子
2019/12/09 Python
python装饰器代替set get方法实例
2019/12/19 Python
python+adb命令实现自动刷视频脚本案例
2020/04/23 Python
欧洲最大的笔和书写专家:The Pen Shop
2017/03/19 全球购物
雷朋巴西官方商店:Ray-Ban Brasil
2020/07/21 全球购物
优秀学生干部推荐材料
2014/02/03 职场文书
遥感技术与仪器求职信
2014/02/22 职场文书
学校三八妇女节活动情况总结
2014/03/09 职场文书
红色故事演讲稿
2014/05/22 职场文书
2014年环境卫生工作总结
2014/11/24 职场文书
电力工程合作意向书
2015/05/11 职场文书
《语言的突破》读后感3篇
2019/12/12 职场文书
Nginx如何限制IP访问只允许特定域名访问
2022/07/23 Servers