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 相关文章推荐
ThinkPHP实现ajax仿官网搜索功能实例
Dec 02 PHP
PHP PDO fetch 模式各种参数的输出结果一览
Jan 07 PHP
分享PHP源码批量抓取远程网页图片并保存到本地的实现方法
Dec 01 PHP
PHP获取当前文件的父目录方法汇总
Jul 21 PHP
PHP数组编码gbk与utf8互相转换的两种方法
Sep 01 PHP
PHP实现redis限制单ip、单用户的访问次数功能示例
Jun 16 PHP
php压缩文件夹最新版
Jul 18 PHP
PHP fopen函数用法实例讲解
Feb 15 PHP
Laravel项目中timeAgo字段语言转换的改善方法示例
Sep 16 PHP
Laravel 微信小程序后端实现用户登录的示例代码
Nov 26 PHP
yii 框架实现按天,月,年,自定义时间段统计数据的方法分析
Apr 04 PHP
php如何获取Http请求
Apr 30 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下利用header()函数设置浏览器缓存的代码
2010/09/01 PHP
PHP运行时强制显示出错信息的代码
2011/04/20 PHP
php分页函数完整实例代码
2014/09/22 PHP
监控 url fragment变化的js代码
2010/04/19 Javascript
Javascript下判断是否为闰年的Datetime包
2010/10/26 Javascript
JQuery+JS实现仿百度搜索结果中关键字变色效果
2011/08/02 Javascript
Javascript 遮罩层和加载效果代码
2013/08/01 Javascript
js判断60秒以及倒计时示例代码
2014/01/24 Javascript
Bootstrap每天必学之导航
2015/11/26 Javascript
JavaScript操作选择对象的简单实例
2016/05/16 Javascript
gulp-htmlmin压缩html的gulp插件实例代码
2016/06/06 Javascript
详解Angular路由 ng-route和ui-router的区别
2017/05/22 Javascript
js中less常用的方法小结
2017/08/09 Javascript
浅谈在fetch方法中添加header后遇到的预检请求问题
2017/08/31 Javascript
浅谈Javascript常用正则表达式应用
2019/03/08 Javascript
解决vue中使用proxy配置不同端口和ip接口问题
2019/08/14 Javascript
JS实现可视化音频效果的实例代码
2020/01/16 Javascript
微信小程序实现加入购物车滑动轨迹
2020/11/18 Javascript
对python抓取需要登录网站数据的方法详解
2018/05/21 Python
Python实现简单的文本相似度分析操作详解
2018/06/16 Python
Python实现Mysql数据统计及numpy统计函数
2019/07/15 Python
调用其他python脚本文件里面的类和方法过程解析
2019/11/15 Python
pytorch forward两个参数实例
2020/01/17 Python
如何解决cmd运行python提示不是内部命令
2020/07/01 Python
Python3爬虫里关于Splash负载均衡配置详解
2020/07/10 Python
python 使用建议与技巧分享(四)
2020/08/18 Python
python 视频下载神器(you-get)的具体使用
2021/01/06 Python
运动鞋中的劳斯莱斯:索康尼(SAUCONY)
2017/08/09 全球购物
就业推荐自我鉴定
2013/10/06 职场文书
大学军训自我鉴定
2013/12/15 职场文书
有关爱国演讲稿
2014/05/07 职场文书
保护环境建议书400字
2014/05/13 职场文书
大学生思想道德自我评价
2015/03/09 职场文书
陈斌强事迹观后感
2015/06/17 职场文书
粗暴解决CUDA out of memory的问题
2021/05/22 Python
Django Paginator分页器的使用示例
2021/06/23 Python