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 相关文章推荐
利用js调用后台php进行数据处理原码
Oct 09 PHP
使用 php4 加速 web 传输
Oct 09 PHP
windows下PHP APACHE MYSQ完整配置
Jan 02 PHP
判断Keep-Alive模式的HTTP请求的结束的实现代码
Aug 06 PHP
解析wamp5下虚拟机配置文档
Jun 27 PHP
php stripslashes和addslashes的区别
Feb 03 PHP
php解决约瑟夫环示例
Apr 09 PHP
PHP伪静态Rewrite设置之APACHE篇
Jul 30 PHP
简单谈谈php中的unicode和utf8编码
Jun 10 PHP
PHP与服务器文件系统的简单交互
Oct 21 PHP
php类自动装载、链式操作、魔术方法实现代码
Jul 23 PHP
PHP Web表单生成器案例分析
Jun 02 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实现mysql同步的实现方法
2009/10/21 PHP
php解决抢购秒杀抽奖等大流量并发入库导致的库存负数的问题
2014/06/19 PHP
ThinkPHP框架实现的MySQL数据库备份功能示例
2018/05/24 PHP
PHP错误提示It is not safe to rely on the system……的解决方法
2019/03/25 PHP
Laravel多域名下字段验证的方法
2019/04/04 PHP
php经典趣味算法实例代码
2020/01/21 PHP
js Array操作的最简短最容易理解方法
2013/12/09 Javascript
js二维数组定义和初始化的三种方法总结
2014/03/03 Javascript
初识Node.js
2014/09/03 Javascript
angularJS 中input示例分享
2015/02/09 Javascript
详解JavaScript中双等号引起的隐性类型转换
2016/05/30 Javascript
Vuejs第九篇之组件作用域及props数据传递实例详解
2016/09/05 Javascript
js实现页面刷新滚动条位置不变
2016/11/27 Javascript
Extjs gridpanel 中的checkbox(复选框)根据某行的条件不能选中的解决方法
2017/02/17 Javascript
jQuery实现弹幕效果
2017/02/17 Javascript
Angularjs 双向绑定时字符串的转换成数字类型的问题
2017/06/12 Javascript
vue开发调试神器vue-devtools使用详解
2017/07/13 Javascript
微信小程序五子棋游戏AI实现方法【附demo源码下载】
2019/02/20 Javascript
webpack4实现不同的导出类型
2019/04/09 Javascript
Vue.js计算机属性computed和methods方法详解
2019/10/12 Javascript
Vue中通过属性绑定为元素绑定style行内样式的实例代码
2020/04/30 Javascript
Vue实现图书管理小案例
2020/12/03 Vue.js
python实现电子词典
2020/04/23 Python
分析Python中解析构建数据知识
2018/01/20 Python
Python sorted排序方法如何实现
2020/03/31 Python
python3中sys.argv的实例用法
2020/04/24 Python
CSS中垂直居中的简单实现方法
2015/07/06 HTML / CSS
美国一家著名的儿童鞋制造商:Stride Rite
2017/01/02 全球购物
年终总结会议主持词
2014/03/17 职场文书
经理秘书求职自荐信范文
2014/03/23 职场文书
科长竞争上岗演讲稿
2014/05/12 职场文书
乱丢垃圾袋检讨书
2014/10/08 职场文书
经营场所使用证明
2015/06/19 职场文书
2021-4-3课程——SQL Server查询【2】
2021/04/05 SQL Server
pytorch常用数据类型所占字节数对照表一览
2021/05/17 Python
关于Python使用turtle库画任意图的问题
2022/04/01 Python