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 05 PHP
PHP set_time_limit(0)长连接的实现分析
Mar 02 PHP
浅析application/x-www-form-urlencoded和multipart/form-data的区别
Jun 22 PHP
ThinkPHP中的系统常量和预定义常量集合
Jul 01 PHP
php eval函数一句话木马代码
May 21 PHP
PHP判断上传文件类型的解决办法
Oct 20 PHP
php根据日期或时间戳获取星座信息和生肖等信息
Oct 20 PHP
PHP实现基于mysqli的Model基类完整实例
Apr 08 PHP
Yii2框架实现登录、退出及自动登录功能的方法详解
Oct 24 PHP
phpstudy2018升级MySQL5.5为5.7教程(图文)
Oct 24 PHP
laravel使用Faker数据填充的实现方法
Apr 12 PHP
PHP基础之输出缓冲区基本概念、原理分析
Jun 19 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读取flv文件的播放时间长度
2009/09/03 PHP
如何批量替换相对地址为绝对地址(利用bat批处理实现)
2013/05/27 PHP
更改localhost为其他名字的方法
2014/02/10 PHP
php实现处理输入转义字符的代码
2015/11/08 PHP
php实现在线通讯录功能(附源码)
2016/05/13 PHP
Jquery命名冲突解决的五种方案分享
2012/03/16 Javascript
onmouseover和onmouseout的一些问题思考
2013/08/14 Javascript
jQuery鼠标事件汇总
2015/08/30 Javascript
js获取元素的标签名实现方法
2016/10/08 Javascript
JS如何实现在页面上快速定位(锚点跳转问题)
2017/08/14 Javascript
angular2系列之路由转场动画的示例代码
2017/11/09 Javascript
JS排序算法之冒泡排序,选择排序与插入排序实例分析
2017/12/13 Javascript
基于vue2.x的电商图片放大镜插件的使用
2018/01/22 Javascript
vue checkbox 全选 数据的绑定及获取和计算方法
2018/02/09 Javascript
详解javascript replace高级用法
2019/02/17 Javascript
微信小程序生成分享海报方法(附带二维码生成)
2019/03/29 Javascript
详解在HTTPS 项目中使用百度地图 API
2019/04/26 Javascript
Vue将页面导出为图片或者PDF
2020/08/17 Javascript
手把手教你 CKEDITOR 4 实现Dialog 内嵌 IFrame操作详解
2019/06/18 Javascript
解决layui页面按钮点击无反应,也不报错的问题
2019/09/29 Javascript
python发送邮件示例(支持中文邮件标题)
2014/02/16 Python
解析Python中while true的使用
2015/10/13 Python
python实现杨辉三角思路
2017/07/14 Python
centos 安装python3.6环境并配置虚拟环境的详细教程
2018/02/22 Python
Python使用itertools模块实现排列组合功能示例
2018/07/02 Python
Python利用逻辑回归模型解决MNIST手写数字识别问题详解
2020/01/14 Python
详解python 破解网站反爬虫的两种简单方法
2020/02/09 Python
Python中猜拳游戏与猜筛子游戏的实现方法
2020/09/04 Python
美体小铺瑞典官方网站:The Body Shop瑞典
2018/01/27 全球购物
有影响力的品牌之家:Our Social Collective
2019/06/08 全球购物
Kathmandu新西兰官网:新西兰户外运动品牌
2019/07/27 全球购物
判断单链表中是否存在环
2012/07/16 面试题
《赠汪伦》教学反思
2014/04/12 职场文书
小学生交通安全寄语
2015/02/27 职场文书
盗窃案辩护词
2015/05/21 职场文书
Python 实现绘制子图及子图刻度的变换等问题
2021/05/31 Python