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中用文本文件做数据库的实现方法
Mar 27 PHP
php读取txt文件组成SQL并插入数据库的代码(原创自Zjmainstay)
Jul 31 PHP
探讨捕获php错误信息方法的详解
Jun 09 PHP
从PHP $_SERVER相关参数判断是否支持Rewrite模块
Sep 26 PHP
一个简单且很好用的php分页类
Oct 26 PHP
PHP中source #N问题的解决方法
Jan 27 PHP
php创建无限级树型菜单
Nov 05 PHP
php array_key_exists() 与 isset() 的区别
Oct 24 PHP
详解Yii2.0使用AR联表查询实例
Jun 16 PHP
PHP Socket网络操作类定义与用法示例
Aug 30 PHP
php中如何执行linux命令详解
Nov 06 PHP
laravel框架使用阿里云短信发送消息操作示例
Feb 15 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&amp;mysql(四)
2006/10/09 PHP
创建配置文件 用PHP写出自己的BLOG系统 2
2010/04/12 PHP
PHP过滤★等特殊符号的正则
2014/01/27 PHP
PHP开启opcache提升代码性能
2015/04/26 PHP
发现的以前不知道的函数
2006/09/19 Javascript
javascript之函数直接量(function(){})()
2007/06/29 Javascript
javascript中字符串替换函数replace()方法与c# 、vb 替换有一点不同
2010/06/25 Javascript
Javascript Boolean、Nnumber、String 强制类型转换的区别详细介绍
2012/12/13 Javascript
jQuery基本选择器选择元素使用介绍
2013/04/18 Javascript
Extjs4 类的定义和扩展实例
2013/06/28 Javascript
使用javascript做的一个随机点名程序
2014/02/13 Javascript
给js文件传参数(详解)
2014/07/13 Javascript
Jquery Post处理后不进入回调的原因及解决方法
2014/07/15 Javascript
javascript中Date format(js日期格式化)方法小结
2015/12/17 Javascript
基于jQuery实现选取月份插件附源码下载
2015/12/28 Javascript
使用jQuery或者原生js实现鼠标滚动加载页面新数据
2016/03/06 Javascript
JS跨域解决方案之使用CORS实现跨域
2016/04/14 Javascript
angularjs实现上拉加载和下拉刷新数据功能
2017/06/12 Javascript
Angular使用 ng-img-max 调整浏览器中的图片的示例代码
2017/08/17 Javascript
vue element-ui 绑定@keyup事件无效的解决方法
2018/03/09 Javascript
对 Vue-Router 进行单元测试的方法
2018/11/05 Javascript
jQuery 同时获取多个标签的指定内容并储存为数组
2018/11/20 jQuery
如何使用RoughViz可视化Vue.js中的草绘图表
2021/01/30 Vue.js
django实现分页的方法
2015/05/26 Python
Python实现截屏的函数
2015/07/25 Python
Pandas统计重复的列里面的值方法
2019/01/30 Python
python实现文件助手中查看微信撤回消息
2019/04/29 Python
如何更优雅地写python代码
2019/07/02 Python
解决pycharm修改代码后第一次运行不生效的问题
2021/02/06 Python
纺织工程专业个人求职信范文
2014/01/27 职场文书
房产继承公证书
2014/04/09 职场文书
再见,2019我们不负使命;你好,2020我们砥砺前行
2020/01/03 职场文书
python实现web邮箱扫描的示例(附源码)
2021/03/30 Python
Java设计模式之享元模式示例详解
2022/03/03 Java/Android
详细介绍MySQL中limit和offset的用法
2022/05/06 MySQL
一文搞懂PHP中的抽象类和接口
2022/05/25 PHP