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中Session的概念
Oct 09 PHP
如何在Ubuntu下启动Apache的Rewrite功能
Jul 05 PHP
PHP实现获取图片颜色值的方法
Jul 11 PHP
php向js函数传参的几种方法
Aug 10 PHP
PHP提示Warning:phpinfo() has been disabled函数禁用的解决方法
Dec 17 PHP
简单介绍PHP的责任链编程模式
Aug 11 PHP
[原创]CI(CodeIgniter)简单统计访问人数实现方法
Jan 19 PHP
PHP计算当前坐标3公里内4个角落的最大最小经纬度实例
Feb 26 PHP
php 使用redis锁限制并发访问类示例
Nov 02 PHP
PHP SPL 被遗落的宝石【SPL应用浅析】
Apr 20 PHP
PHP 爬取网页的主要方法
Jul 13 PHP
PHP中localeconv()函数的用法
Mar 26 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 会话(session 时间设定)使用入门代码
2008/06/05 PHP
分享自定义的几个PHP功能函数
2015/04/15 PHP
PHP机器学习库php-ml的简单测试和使用方法
2017/07/14 PHP
使用node.js半年来总结的 10 条经验
2014/08/18 Javascript
node.js中的url.format方法使用说明
2014/12/10 Javascript
javascript制作游戏开发碰撞检测的封装代码
2015/03/31 Javascript
JavaScript中用于四舍五入的Math.round()方法讲解
2015/06/15 Javascript
Bootstrap每天必学之面板
2015/11/30 Javascript
Spring MVC中Ajax实现二级联动的简单实例
2016/07/06 Javascript
angularJS 发起$http.post和$http.get请求的实现方法
2017/05/18 Javascript
AngularJS实现表格的增删改查(仅限前端)
2017/07/04 Javascript
使用yeoman构建angular应用的方法
2017/08/14 Javascript
JS解决position:sticky的兼容性问题的方法
2017/10/17 Javascript
ztree实现左边动态生成树右边为内容详情功能
2017/11/03 Javascript
10分钟上手vue-cli 3.0 入门介绍
2018/04/04 Javascript
vue裁切预览组件功能的实现步骤
2018/05/04 Javascript
对vuex中store和$store的区别说明
2020/07/24 Javascript
uni-app使用countdown插件实现倒计时
2020/11/01 Javascript
[02:45]DOTA2英雄基础教程 伐木机
2013/12/23 DOTA
基于Python实现的百度贴吧网络爬虫实例
2015/04/17 Python
python 出现SyntaxError: non-keyword arg after keyword arg错误解决办法
2017/02/14 Python
利用Python循环(包括while&amp;for)各种打印九九乘法表的实例
2017/11/06 Python
Python使用xlwt模块操作Excel的方法详解
2018/03/27 Python
python GUI库图形界面开发之PyQt5拖放控件实例详解
2020/02/25 Python
python redis存入字典序列化存储教程
2020/07/16 Python
Python变量及数据类型用法原理汇总
2020/08/06 Python
python的dict判断key是否存在的方法
2020/12/09 Python
CSS3 animation ? steps 函数详解
2019/08/30 HTML / CSS
武汉世纪畅想数字传播有限公司.NET笔试题
2014/07/22 面试题
献爱心大型公益活动策划方案
2014/09/15 职场文书
公司离职证明标准范本
2014/10/05 职场文书
老人再婚离婚协议书范本
2014/10/27 职场文书
2014年发展党员工作总结
2014/11/12 职场文书
2014年环保局工作总结
2014/12/11 职场文书
授权委托书
2015/01/28 职场文书
小学语文教师年度考核个人总结
2015/02/05 职场文书