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实现递归循环每一个目录
Aug 08 PHP
php中模拟POST传递数据的两种方法分享
Sep 16 PHP
php中如何使对象可以像数组一样进行foreach循环
Aug 09 PHP
php实现水仙花数的4个示例分享
Apr 08 PHP
PHP中key和current,next的联合运用实例分析
Mar 29 PHP
JavaScript实现删除电脑的关机键
Jul 26 PHP
Yii框架连接mongodb数据库的代码
Jul 27 PHP
PHP后端银联支付及退款实例代码
Jun 23 PHP
ThinkPHP5 验证器的具体使用
May 31 PHP
php实现微信企业付款到个人零钱功能
Oct 09 PHP
TP5框架实现签到功能的方法分析
Apr 05 PHP
解决PHPstudy Apache无法启动的问题【亲测有效】
Oct 30 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中批量生成静态html(命令行下运行PHP)
2014/04/19 PHP
YII框架中搜索分页jQuery写法详解
2016/12/19 PHP
收藏一些不常用,但是有用的代码
2007/03/12 Javascript
25个非常棒的jQuery滑块插件和教程小结
2011/09/02 Javascript
JQuery设置和去除disabled属性的5种方法总结
2013/05/16 Javascript
jquery使用append(content)方法注意事项分享
2014/01/06 Javascript
js绘制圆形和矩形的方法
2015/08/05 Javascript
整理Javascript函数学习笔记
2015/12/01 Javascript
有关jquery与DOM节点操作方法和属性记录
2016/04/15 Javascript
Boostrap基础教程之JavaScript插件篇
2016/09/08 Javascript
javascript 正则表达式去空行方法
2017/01/24 Javascript
jQuery插件MovingBoxes实现左右滑动中间放大图片效果
2017/02/28 Javascript
jQuery插件FusionCharts实现的MSBar3D图效果示例【附demo源码】
2017/03/23 jQuery
Express进阶之log4js实用入门指南
2018/02/10 Javascript
javascript变量提升和闭包理解
2018/03/12 Javascript
vue2.0的虚拟DOM渲染思路分析
2018/08/09 Javascript
微信开发之企业付款到银行卡接口开发的示例代码
2018/09/18 Javascript
微信小程序实现留言功能
2018/10/31 Javascript
Vue运用transition实现过渡动画
2019/05/06 Javascript
JS中作用域以及变量范围分析
2020/07/18 Javascript
JavaScript canvas实现文字时钟
2021/01/10 Javascript
Python 私有函数的实例详解
2017/09/11 Python
使用python脚本实现查询火车票工具
2018/07/19 Python
pycharm重置设置,恢复默认设置的方法
2018/10/22 Python
python防止随意修改类属性的实现方法
2019/08/21 Python
使用Bazel编译TensorBoard教程
2020/02/15 Python
Python基于os.environ从windows获取环境变量
2020/06/09 Python
django ObjectDoesNotExist 和 DoesNotExist的用法
2020/07/09 Python
党校培训思想汇报
2013/12/30 职场文书
毕业生自荐书
2014/02/02 职场文书
开朗女孩的自我评价
2014/02/10 职场文书
财务部副经理岗位职责范本
2014/06/17 职场文书
运动会400米加油稿(8篇)
2014/09/22 职场文书
《桂花雨》教学反思
2016/02/19 职场文书
人生一定要学会的三样东西:放下、忘记、珍惜
2019/08/21 职场文书
Pygame游戏开发之太空射击实战敌人精灵篇
2022/08/05 Python