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获取某个目录大小的代码
Sep 10 PHP
模板引擎正则表达式调试小技巧
Jul 20 PHP
php中可能用来加密字符串的函数[base64_encode、urlencode、sha1]
Jan 16 PHP
基于empty函数的输出详解
Jun 17 PHP
php使用qr生成二维码的示例分享
Jan 20 PHP
从零开始学YII2框架(五)快速生成代码工具 Gii 的使用
Aug 20 PHP
php使用$_POST或$_SESSION[]向js函数传参
Sep 16 PHP
php针对cookie操作的队列操作类实例
Dec 10 PHP
Yii框架中jquery表单验证插件用法示例
Oct 18 PHP
在laravel中使用with实现动态添加where条件
Oct 10 PHP
phpquery中文手册
Mar 18 PHP
thinkphp5 redis缓存新增方法实例讲解
Mar 24 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中ADODB类详解
2008/03/25 PHP
java微信开发之上传下载多媒体文件
2016/06/24 PHP
用Greasemonkey 脚本收藏网站会员信息到本地
2009/10/26 Javascript
javascript温习的一些笔记 基础常用知识小结
2011/06/22 Javascript
js查错流程归纳
2012/05/04 Javascript
Javasipt:操作radio标签详解
2013/12/30 Javascript
JavaScript中for-in遍历方式示例介绍
2014/02/11 Javascript
JQuery控制div外点击隐藏而div内点击不会隐藏的方法
2015/01/13 Javascript
javascript正则表达式使用replace()替换手机号的方法
2015/01/19 Javascript
详解js图片轮播效果实现原理
2015/12/17 Javascript
javascript匀速运动实现方法分析
2016/01/08 Javascript
Angularjs结合Bootstrap制作的一个TODO List
2016/08/18 Javascript
jQuery 利用$.ajax 时获取原生XMLHttpRequest 对象的方法
2016/08/25 Javascript
jQuery.ajax向后台传递数组问题的解决方法
2017/05/12 jQuery
JS中DOM元素的attribute与property属性示例详解
2018/09/04 Javascript
vue+iview/elementUi实现城市多选
2019/03/28 Javascript
微信小程序实现图片选择并预览功能
2019/07/25 Javascript
vue 导航守卫和axios拦截器有哪些区别
2020/12/19 Vue.js
[02:10]三分钟回顾完美世界城市挑战赛
2019/01/24 DOTA
解析Python中的变量、引用、拷贝和作用域的问题
2015/04/07 Python
Python3中常用的处理时间和实现定时任务的方法的介绍
2015/04/07 Python
Python 读写文件和file对象的方法(推荐)
2016/09/12 Python
python编程羊车门问题代码示例
2017/10/25 Python
Python标准模块--ContextManager上下文管理器的具体用法
2017/11/27 Python
在python中实现对list求和及求积
2018/11/14 Python
Python pandas对excel的操作实现示例
2020/07/21 Python
Python 实现键盘鼠标按键模拟
2020/11/18 Python
英国领先的瓷砖专家:Walls and Floors
2018/04/27 全球购物
BudgetAir印度:预订航班、酒店和汽车租赁
2019/07/07 全球购物
大学毕业登记表自我鉴定
2013/10/09 职场文书
生产部统计员岗位职责
2014/01/05 职场文书
地陪导游欢迎词
2015/01/26 职场文书
校园之声广播稿
2015/08/18 职场文书
Python趣味挑战之教你用pygame画进度条
2021/05/31 Python
springboot应用服务启动事件的监听实现
2022/04/06 Java/Android
华为HarmonyOS3.0强在哪? 看看鸿蒙3.0这7个小功能
2023/01/09 数码科技