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 相关文章推荐
一个更简单的无限级分类菜单代码
Jan 16 PHP
PHP iconv 函数转gb2312的bug解决方法
Oct 11 PHP
php 运行效率总结(提示程序速度)
Nov 26 PHP
php图片缩放实现方法
Feb 20 PHP
ThinkPHP模板IF标签用法详解
Jul 01 PHP
php中常见的sql攻击正则表达式汇总
Nov 06 PHP
php强制下载文件函数
Aug 24 PHP
PHP session会话操作技巧小结
Sep 27 PHP
ThinkPHP中create()方法自动验证表单信息
Apr 28 PHP
thinkphp5.0自定义验证规则使用方法
Nov 16 PHP
laravel返回统一格式错误码问题
Nov 04 PHP
PHP 命名空间和自动加载原理与用法实例分析
Apr 29 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
星际争霸 Starcraft 秘技补丁
2020/03/14 星际争霸
Yii Framework框架获取分类下面的所有子类方法
2014/06/20 PHP
用 Composer构建自己的 PHP 框架之基础准备
2014/10/30 PHP
PHP函数实现从一个文本字符串中提取关键字的方法
2015/07/01 PHP
PHP扩展开发教程(总结)
2015/11/04 PHP
php 魔术常量详解及实例代码
2016/12/04 PHP
laravel-admin解决表单select联动时,编辑默认没选上的问题
2019/09/30 PHP
Laravel 中使用简单的方法跟踪用户是否在线(推荐)
2019/10/30 PHP
弹出层之1:JQuery.Boxy (一) 使用介绍
2011/10/06 Javascript
jquery插件制作 自增长输入框实现代码
2012/08/17 jQuery
Jquery 数据选择插件Pickerbox使用介绍
2012/08/24 Javascript
jquery插件如何使用 jQuery操作Cookie插件使用介绍
2012/12/15 Javascript
js异步加载的三种解决方案
2013/03/04 Javascript
jQuery手机拨号界面特效代码分享
2015/08/27 Javascript
javascript实现秒表计时器的制作方法
2017/02/16 Javascript
js实现随机点名系统(实例讲解)
2017/10/18 Javascript
vue用Object.defineProperty手写一个简单的双向绑定的示例
2018/07/09 Javascript
微信小程序CSS3动画下拉菜单效果
2018/11/04 Javascript
解决Vue打包后访问图片/图标不显示的问题
2019/07/25 Javascript
原生JavaScript实现滑动拖动验证的示例代码
2019/12/06 Javascript
微信小程序使用自定义组件导航实现当前页面高亮
2020/01/02 Javascript
vue实现购物车加减
2020/05/30 Javascript
在Django框架中编写Context处理器的方法
2015/07/20 Python
python3爬取淘宝信息代码分析
2018/02/10 Python
Python爬虫之pandas基本安装与使用方法示例
2018/08/08 Python
Python在Matplotlib图中显示中文字体的操作方法
2019/07/29 Python
Python自带的IDE在哪里
2020/07/01 Python
Python变量格式化输出实现原理解析
2020/08/06 Python
详解python中的异常和文件读写
2021/01/03 Python
大学新生军训方案
2014/05/03 职场文书
人力资源职位说明书
2014/07/29 职场文书
高中课前三分钟演讲稿
2014/08/18 职场文书
2015年反腐倡廉工作总结
2015/05/14 职场文书
2015医院个人工作总结范文
2015/05/21 职场文书
数据库之SQL技巧整理案例
2021/07/07 SQL Server
vue 自定义的组件绑定点击事件
2022/04/21 Vue.js