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 相关文章推荐
vBulletin Forum 2.3.xx SQL Injection
Oct 09 PHP
php empty() 检查一个变量是否为空
Nov 10 PHP
php上传图片之时间戳命名(保存路径)
Aug 15 PHP
php约瑟夫问题解决关于处死犯人的算法
Mar 23 PHP
php文件操作之小型留言本实例
Jun 20 PHP
PHP结合jQuery插件ajaxFileUpload实现异步上传文件实例
Aug 17 PHP
php+MySql实现登录系统与输出浏览者信息功能
Jul 01 PHP
thinkphp分页集成实例
Jul 24 PHP
PHP命令空间namespace及use的用法小结
Nov 27 PHP
yii2多图上传组件的使用教程
May 10 PHP
laravel 实现根据字段不同值做不同查询
Oct 23 PHP
如何运行/调试你的PHP代码
Oct 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
php 变量定义方法
2009/06/14 PHP
php 验证码实例代码
2010/06/01 PHP
php 解决旧系统 查出所有数据分页的类
2012/08/27 PHP
AeroWindow 基于JQuery的弹出窗口插件
2011/06/27 Javascript
angularjs实现与服务器交互分享
2014/06/24 Javascript
jQuery经过一段时间自动隐藏指定元素的方法
2015/03/17 Javascript
javascript中JSON对象与JSON字符串相互转换实例
2015/07/11 Javascript
JS日期加减,日期运算代码
2015/11/05 Javascript
深入理解js generator数据类型
2016/08/16 Javascript
JavaScript中undefined和null的区别
2017/05/03 Javascript
Vue与Node.js通过socket.io通信的示例代码
2018/07/25 Javascript
jquery获取select选中值的文本,并赋值给另一个输入框的方法
2018/08/21 jQuery
node之本地服务器图片上传的方法示例
2019/03/26 Javascript
使用Element的InfiniteScroll 无限滚动组件报错的解决
2020/07/27 Javascript
vue 监听窗口变化对页面部分元素重新渲染操作
2020/07/28 Javascript
JS轮播图的实现方法2
2020/08/25 Javascript
基于Vue.js+Nuxt开发自定义弹出层组件
2020/10/09 Javascript
Js实现粘贴上传图片的原理及示例
2020/12/09 Javascript
[06:07]辉夜杯现场观众互动 “比谁远送显示器”
2015/12/26 DOTA
详解Python函数可变参数定义及其参数传递方式
2017/08/02 Python
对Pyhon实现静态变量全局变量的方法详解
2019/01/11 Python
Python使用MyQR制作专属动态彩色二维码功能
2019/06/04 Python
Python基本数据结构之字典类型dict用法分析
2019/06/08 Python
python支付宝支付示例详解
2019/08/22 Python
详解Python在使用JSON时需要注意的编码问题
2019/12/06 Python
pandas使用之宽表变窄表的实现
2020/04/12 Python
Python实现列表索引批量删除的5种方法
2020/11/16 Python
解决TensorFlow训练模型及保存数量限制的问题
2021/03/03 Python
智利最大的网上商店:Linio智利
2016/11/24 全球购物
护理不良事件检讨书
2014/02/06 职场文书
给老师的一封建议书
2014/03/13 职场文书
文艺晚会策划方案
2014/06/11 职场文书
欢迎词范文
2015/01/27 职场文书
碧霞祠导游词
2015/02/09 职场文书
大学生自荐信范文
2015/03/05 职场文书
vue elementUI表格控制对应列
2022/04/13 Vue.js