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实际应用经验篇(6)
Oct 09 PHP
phpmyadmin MySQL 加密配置方法
Jul 05 PHP
PHP isset()与empty()的使用区别详解
Aug 29 PHP
php中使用exec,system等函数调用系统命令的方法(不建议使用,可导致安全问题)
Sep 07 PHP
PHP数据流应用的一个简单实例
Sep 14 PHP
探讨如何在PHP开启gzip页面压缩实例
Jun 09 PHP
php检测url是否存在的方法
Apr 14 PHP
php商品对比功能代码分享
Sep 24 PHP
laravel中命名路由的使用方法
Feb 24 PHP
PHP通过curl获取接口URL的数据方法
May 31 PHP
PHP实现给定一列字符,生成指定长度的所有可能组合示例
Jun 22 PHP
laravel通用化的CURD的实现
Dec 13 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通用分页类page.php[仿google分页]
2008/08/31 PHP
php 生成饼图 三维饼图
2009/09/28 PHP
支持数组的ADDSLASHES的php函数
2010/02/16 PHP
php中模拟POST传递数据的两种方法分享
2011/09/16 PHP
浅析Apache中RewriteCond规则参数的详细介绍
2013/06/30 PHP
利用js获取服务器时间的两个简单方法
2010/01/08 Javascript
jquery获取一组checkbox的值(实例代码)
2013/11/04 Javascript
javascript二维数组转置实例
2015/01/22 Javascript
js制作带有遮罩弹出层实现登录注册表单特效代码分享
2015/09/05 Javascript
jQuery on()方法绑定动态元素的点击事件无响应的解决办法
2016/07/07 Javascript
JavaScript基于Dom操作实现查找、修改HTML元素的内容及属性的方法
2017/01/20 Javascript
JavaScript实现的数字与字符串转换功能示例
2017/08/23 Javascript
axios拦截设置和错误处理方法
2018/03/05 Javascript
NodeJS 中Stream 的基本使用
2018/07/30 NodeJs
JavaScript闭包与作用域链实例分析
2019/01/21 Javascript
layui-table获得当前行的上/下一行数据的例子
2019/09/24 Javascript
详解vue 自定义组件使用v-model 及探究其中原理
2019/10/11 Javascript
简单的连接MySQL与Python的Bottle框架的方法
2015/04/30 Python
Python二分法搜索算法实例分析
2015/05/11 Python
Python进阶篇之字典操作总结
2016/11/16 Python
Python实现识别手写数字 简易图片存储管理系统
2018/01/29 Python
python Pandas 读取txt表格的实例
2018/04/29 Python
Python3安装Pillow与PIL的方法
2019/04/03 Python
Pytorch 实现数据集自定义读取
2020/01/18 Python
css3和jquery实现的可折叠导航菜单适合放在手机网页的导航菜单
2014/09/02 HTML / CSS
css3中仿放大镜效果的几种方式原理解析
2020/12/03 HTML / CSS
HTML5+CSS设置浮动却没有动反而在中间且错行的问题
2020/05/26 HTML / CSS
南非领先的在线旅行社:Travelstart南非
2016/09/04 全球购物
八年级物理教学反思
2014/01/19 职场文书
服务员岗位职责
2015/02/03 职场文书
KTV员工管理制度
2015/08/06 职场文书
大学军训口号大全
2015/12/24 职场文书
导游词之杭州西湖
2019/09/19 职场文书
Python中的嵌套循环详情
2022/03/23 Python
TV动画《史上最强大魔王转生为村民A》番宣CM公布
2022/04/01 日漫
vue中div禁止点击事件的实现
2022/04/02 Vue.js