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边学边教》(02.Apache+PHP环境配置――上篇)
Dec 13 PHP
php a simple smtp class
Nov 26 PHP
php 结果集的分页实现代码
Mar 10 PHP
php中计算中文字符串长度、截取中文字符串的函数代码
Aug 09 PHP
PHP随机字符串生成代码(包括大小写字母)
Jun 24 PHP
Laravel 5框架学习之表单
Apr 08 PHP
php根据用户语言跳转相应网页
Nov 04 PHP
php实现scws中文分词搜索的方法
Dec 25 PHP
ThinkPHP实现图片上传操作的方法详解
May 08 PHP
PHP+Apache环境中如何隐藏Apache版本
Nov 24 PHP
PHP排序算法之归并排序(Merging Sort)实例详解
Apr 21 PHP
thinkphp5框架前后端分离项目实现分页功能的方法分析
Oct 08 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安装xdebug/php安装pear/phpunit详解步骤(图)
2013/12/22 PHP
PHP 返回13位时间戳的实现代码
2016/05/13 PHP
Zend Framework使用Zend_Loader组件动态加载文件和类用法详解
2016/12/09 PHP
最新优化收藏到网摘代码(digg,diigo)
2007/02/07 Javascript
htm调用JS代码
2007/03/15 Javascript
JS的递增/递减运算符和带操作的赋值运算符的等价式
2007/12/08 Javascript
jquery validate 自定义验证方法介绍 日期验证
2014/02/27 Javascript
vueJS简单的点击显示与隐藏的效果【实现代码】
2016/05/03 Javascript
jQuery代码实现图片墙自动+手动淡入淡出切换效果
2016/05/09 Javascript
谈谈第三方App接入微信登录 解读
2016/12/27 Javascript
老生常谈jquery中detach()和remove()的区别
2017/03/02 Javascript
浅析为什么a=&quot;abc&quot; 不等于 a=new String(&quot;abc&quot;)
2017/10/25 Javascript
react中fetch之cors跨域请求的实现方法
2018/03/14 Javascript
浅谈webpack-dev-server的配置和使用
2018/05/17 Javascript
Nodejs处理异常操作示例
2018/12/25 NodeJs
vue子路由跳转实现tab选项卡
2019/07/24 Javascript
javascript的delete运算符知识点总结
2019/11/19 Javascript
微信小程序8种数据通信的方式小结
2020/02/03 Javascript
快速排序的算法思想及Python版快速排序的实现示例
2016/07/02 Python
windows下python连接oracle数据库
2017/06/07 Python
Django2.1集成xadmin管理后台所遇到的错误集锦(填坑)
2018/12/20 Python
Python实现的爬取小说爬虫功能示例
2019/03/30 Python
Django高级编程之自定义Field实现多语言
2019/07/02 Python
基于Python的OCR实现示例
2020/04/03 Python
amaze ui 的使用详细教程
2020/08/19 HTML / CSS
优衣库英国官网:UNIQLO英国
2016/12/25 全球购物
what is the difference between ext2 and ext3
2013/11/03 面试题
新护士岗前培训制度
2014/02/02 职场文书
青年文明号复核材料
2014/02/11 职场文书
面试必备的求职信
2014/05/25 职场文书
物业消防安全责任书
2014/07/23 职场文书
个人汇报材料范文
2014/12/30 职场文书
答谢词范文
2015/01/05 职场文书
公司承诺书格式范文
2015/04/28 职场文书
信用卡工作证明范本
2015/06/19 职场文书
mysql5.7的安装及Navicate长久免费使用的实现过程
2021/11/17 MySQL