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 相关文章推荐
从零开始 教你如何搭建Discuz!4.1论坛
Jul 07 PHP
php数组函数序列之prev() - 移动数组内部指针到上一个元素的位置,并返回该元素值
Oct 31 PHP
PHP定时执行计划任务的多种方法小结
Dec 19 PHP
php中的ini配置原理详解
Oct 14 PHP
PHP中require和include路径问题详解
Dec 25 PHP
php跨服务器访问方法小结
May 12 PHP
php pthreads多线程的安装与使用
Jan 19 PHP
Symfony2学习笔记之控制器用法详解
Mar 17 PHP
PHP编程 SSO详细介绍及简单实例
Jan 13 PHP
Linux服务器下PHPMailer发送邮件失败的问题解决
Mar 04 PHP
PHP读取Excel类文件
May 15 PHP
laravel框架中间件简单使用方法示例
Jan 25 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加Nginx实现动态裁剪图片方案
2014/03/10 PHP
php面向对象中static静态属性和静态方法的调用
2015/02/08 PHP
thinkphp autoload 命名空间自定义 namespace
2015/07/17 PHP
Yii2 rbac权限控制之菜单menu实例教程
2016/04/28 PHP
完美解决在ThinkPHP控制器中命名空间的问题
2017/05/05 PHP
php json转换相关知识(小结)
2018/12/21 PHP
PHP终止脚本运行三种实现方法详解
2020/09/01 PHP
jscript之Open an Excel Spreadsheet
2007/06/13 Javascript
JS IE和FF兼容性问题汇总
2009/02/09 Javascript
Ext.MessageBox工具类简介
2009/12/10 Javascript
jQuery News Ticker 基于jQuery的即时新闻行情展示插件
2011/11/05 Javascript
利用百度地图JSAPI生成h7n9禽流感分布图实现代码
2013/04/15 Javascript
基于JavaScript实现继承机制之原型链(prototype chaining)的详解
2013/05/07 Javascript
js中settimeout方法加参数的使用实例
2014/02/27 Javascript
jQuery中data()方法用法实例
2014/12/27 Javascript
js图片翻书效果代码分享
2015/08/20 Javascript
jQuery实现自动调用和触发某个事件的方法
2016/11/18 Javascript
Node.js 多线程完全指南总结
2019/03/27 Javascript
JS实现单张或多张图片持续无缝滚动的示例代码
2020/05/10 Javascript
微信小程序实现带放大效果的轮播图
2020/05/26 Javascript
[02:19]2014DOTA2国际邀请赛 专访820少年们一起去追梦吧
2014/07/14 DOTA
[45:52]完美世界DOTA2联赛PWL S3 Forest vs INK ICE 第二场 12.09
2020/12/12 DOTA
轻松掌握python设计模式之策略模式
2016/11/18 Python
使用Django和Python创建Json response的方法
2018/03/26 Python
Django实现分页功能
2018/07/02 Python
Python异常处理知识点总结
2019/02/18 Python
Python StringIO如何在内存中读写str
2020/01/07 Python
详解css3中的伪类before和after常见用法
2020/11/17 HTML / CSS
英国标志性奢侈品牌:Burberry
2016/07/28 全球购物
英国最好的温室之家:Greenhouses Direct
2019/07/13 全球购物
软件测试题目
2013/02/27 面试题
销售代表求职自荐信
2013/10/01 职场文书
演讲稿开场白台词
2014/08/25 职场文书
企业财务总监岗位职责
2015/04/03 职场文书
《小小的船》教学反思
2016/02/18 职场文书
js前端图片加载异常兜底方案
2022/06/21 Javascript