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作的文本留言本的例子(三)
Oct 09 PHP
php 数组的合并、拆分、区别取值函数集
Feb 15 PHP
通过JavaScript或PHP检测Android设备的代码
Mar 09 PHP
Php无限级栏目分类读取的实现代码
Feb 19 PHP
php获取网页中图片、DIV内容的简单方法
Jun 19 PHP
PHP实现ftp上传文件示例
Aug 21 PHP
CentOS安装php v8js教程
Feb 26 PHP
超详细的php用户注册页面填写信息完整实例(附源码)
Nov 17 PHP
PHP常见字符串处理函数用法示例【转换,转义,截取,比较,查找,反转,切割】
Dec 24 PHP
PHP如何通过表单直接提交大文件详解
Jan 08 PHP
tp5框架基于Ajax实现列表无刷新排序功能示例
Feb 10 PHP
PHP如何防止用户重复提交表单
Dec 09 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为字符串前后添加指定数量字符的方法
2015/05/04 PHP
smarty模板判断数组为空的方法
2015/06/10 PHP
Yii2使用自带的UploadedFile实现的文件上传
2016/06/20 PHP
Yii2配置Nginx伪静态的方法
2017/05/05 PHP
js中document.getElementByid、document.all和document.layers区分介绍
2011/12/08 Javascript
JS执行删除前的判断代码
2014/02/18 Javascript
jQuery实现的原图对比窗帘效果
2014/06/15 Javascript
jQuery获得document和window对象宽度和高度的方法
2015/03/25 Javascript
JS模拟并美化的表单控件完整实例
2015/08/19 Javascript
js实现网页多级级联菜单代码
2015/08/20 Javascript
纯HTML5制作围住神经猫游戏-附源码下载
2015/08/23 Javascript
js跨浏览器的事件侦听器和事件对象的使用方法
2015/12/17 Javascript
体验jQuery和AngularJS的不同点及AngularJS的迷人之处
2016/02/02 Javascript
学习使用bootstrap基本控件(table、form、button)
2016/04/12 Javascript
利用jQuery插件imgAreaSelect实现获得选择域的图像信息
2016/12/02 Javascript
jQuery中弹出iframe内嵌页面元素到父页面并全屏化的实例代码
2016/12/27 Javascript
jquery实现刷新随机变化样式特效(tag标签样式)
2017/02/03 Javascript
jQuery zTree树插件动态加载实例代码
2017/05/11 jQuery
Angular实现的自定义模糊查询、排序及三角箭头标注功能示例
2017/12/28 Javascript
实现一个 Vue 吸顶锚点组件方法
2019/07/10 Javascript
Python多进程并发与多线程并发编程实例总结
2018/02/08 Python
python 每天如何定时启动爬虫任务(实现方法分享)
2018/05/21 Python
Python爬虫实现获取动态gif格式搞笑图片的方法示例
2018/12/24 Python
Pytorch 实现计算分类器准确率(总分类及子分类)
2020/01/18 Python
Python PyQt5运行程序把输出信息展示到GUI图形界面上
2020/04/27 Python
Python爬虫实战案例之爬取喜马拉雅音频数据详解
2020/12/07 Python
python中的插入排序的简单用法
2021/01/19 Python
结构和类有什么异同
2012/07/16 面试题
办公室保洁员岗位职责
2013/12/02 职场文书
学徒工职责
2014/03/06 职场文书
爱耳日活动总结
2014/04/30 职场文书
2014年保卫工作总结
2014/12/05 职场文书
保密法制宣传月活动总结
2015/05/07 职场文书
2015年城乡环境综合治理工作总结
2015/07/24 职场文书
2016年党员干部公开承诺书
2016/03/24 职场文书
Pytorch实现图像识别之数字识别(附详细注释)
2021/05/11 Python