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 chr() ord()中文截取乱码问题解决方法
Sep 08 PHP
php 数组排序 array_multisort与uasort的区别
Mar 24 PHP
php入门学习知识点七 PHP函数的基本应用
Jul 14 PHP
PHP url 加密解密函数代码
Aug 26 PHP
php牛逼的面试题分享
Jan 18 PHP
php生成图形(Libchart)实例
Nov 06 PHP
smarty简单分页的实现方法
Oct 27 PHP
php实现分页显示
Nov 03 PHP
php脚本守护进程原理与实现方法详解
Jul 20 PHP
thinkPHP通用控制器实现方法示例
Nov 23 PHP
Yii2框架自定义类统一处理url操作示例
May 25 PHP
PHP安全之register_globals的on和off的区别
Jul 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
phpStudy访问速度慢和启动失败的解决办法
2015/11/19 PHP
使用ThinkPHP生成缩略图及显示
2017/04/27 PHP
PHP实现超简单的SSL加密解密、验证及签名的方法示例
2017/08/28 PHP
PHP7新特性之抽象语法树(AST)带来的变化详解
2018/07/17 PHP
论坛特效代码收集(落伍转发-不错)
2006/12/02 Javascript
JavaScript中Array 对象相关的几个方法
2006/12/22 Javascript
理解JavaScript的caller,callee,call,apply
2009/04/28 Javascript
js获取和设置属性的方法
2014/02/20 Javascript
input:checkbox多选框实现单选效果跟radio一样
2014/06/16 Javascript
js获取checkbox值的方法
2015/01/28 Javascript
jquery实现鼠标滑过显示提示框的方法
2015/02/05 Javascript
原生JS实现拖拽图片效果
2020/08/27 Javascript
JavaScript 正则表达式中global模式的特性
2016/02/25 Javascript
VUEJS实战之修复错误并且美化时间(2)
2016/06/13 Javascript
js调用刷新界面的几种方式
2017/05/03 Javascript
Vue结合SignalR实现前后端实时消息同步
2017/09/19 Javascript
JavaScript多线程运行库Nexus.js详解
2017/12/22 Javascript
JavaScript学习教程之cookie与webstorage
2019/06/23 Javascript
详解JavaScript的this指向和绑定
2020/09/08 Javascript
Python迭代用法实例教程
2014/09/08 Python
Python+微信接口实现运维报警
2016/08/27 Python
Django中login_required装饰器的深入介绍
2017/11/24 Python
python3写爬取B站视频弹幕功能
2017/12/22 Python
Pandas Shift函数的基础入门学习笔记
2018/11/16 Python
Python 使用 PyMysql、DBUtils 创建连接池提升性能
2019/08/14 Python
浅谈pandas.cut与pandas.qcut的使用方法及区别
2020/03/03 Python
Django自定义全局403、404、500错误页面的示例代码
2020/03/08 Python
详解HTML5将footer置于页面最底部的方法(CSS+JS)
2018/10/11 HTML / CSS
独特的礼品和创新的科技产品:The Grommet
2018/02/24 全球购物
沙特阿拉伯网上购物:Sayidaty Mall
2018/05/06 全球购物
俄罗斯EPL钻石珠宝店:ЭПЛ
2019/10/22 全球购物
语文教育专业推荐信范文
2013/11/25 职场文书
高中生学习计划书
2014/09/15 职场文书
写给纪委的违纪检讨书
2015/05/05 职场文书
详解Nginx 被动检查服务器的存活状态
2021/10/16 Servers
Python与C++中梯度方向直方图的实现
2022/03/17 Python