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 相关文章推荐
PHPlet在Windows下的安装
Oct 09 PHP
PHP伪静态写法附代码
Jun 20 PHP
显示程序执行时间php函数代码
Aug 29 PHP
非常实用的php弹出错误警告函数扩展性强
Jan 17 PHP
CI(CodeIgniter)框架配置
Jun 10 PHP
PHP curl实现抓取302跳转后页面的示例
Jul 04 PHP
基于PHP的简单采集数据入库程序
Jul 30 PHP
利用PHP生成静态html页面的原理
Sep 30 PHP
Yii框架中jquery表单验证插件用法示例
Oct 18 PHP
yii2学习教程之5种内置行为类详解
Aug 03 PHP
Laravel5.4简单实现app接口Api Token认证方法
Aug 29 PHP
php中pcntl_fork详解
Apr 01 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
smarty实现多级分类的方法
2014/12/05 PHP
php算法实例分享
2015/07/14 PHP
免费空间广告万能消除代码
2006/09/04 Javascript
IE6弹出“已终止操作”的解决办法
2010/11/27 Javascript
如何确保JavaScript的执行顺序 之jQuery.html深度分析
2011/03/03 Javascript
javascript 拖动表格行实现代码
2011/05/05 Javascript
基于jquery实现一张图片点击鼠标放大再点缩小
2013/09/29 Javascript
firefox下jquery ajax返回object XMLDocument处理方法
2014/01/26 Javascript
Nodejs中session的简单使用及通过session实现身份验证的方法
2016/02/04 NodeJs
javascript冒泡排序小结
2016/04/10 Javascript
BootStrap下拉框在firefox浏览器界面不友好的解决方案
2016/08/18 Javascript
JavaScript每天必学之数组和对象部分
2016/09/17 Javascript
Angular表单验证实例详解
2016/10/20 Javascript
JavaScript实现邮箱地址自动匹配功能代码
2016/11/28 Javascript
详解如何优雅地在React项目中使用Redux
2017/12/28 Javascript
AngularJS实现的锚点楼层跳转功能示例
2018/01/02 Javascript
AngularJS中ng-options实现下拉列表的数据绑定方法
2018/08/13 Javascript
开发一个Parcel-vue脚手架工具(详细步骤)
2018/09/22 Javascript
小程序自定义日历效果
2018/12/29 Javascript
8个有意思的JavaScript面试题
2019/07/30 Javascript
JS数组splice操作实例分析
2019/10/12 Javascript
Javascript 类型转换、封闭函数及常见内置对象操作示例
2019/11/15 Javascript
Vue自定义组件的四种方式示例详解
2020/02/28 Javascript
Python下singleton模式的实现方法
2014/07/16 Python
Python两个内置函数 locals 和globals(学习笔记)
2016/08/28 Python
Python实现脚本锁功能(同时只能执行一个脚本)
2017/05/10 Python
python列表推导式操作解析
2019/11/26 Python
将tensorflow模型打包成PB文件及PB文件读取方式
2020/01/23 Python
python实现连连看游戏
2020/02/14 Python
Python jieba库分词模式实例用法
2021/01/13 Python
巴西婴儿用品商店:Bebe Store
2017/11/23 全球购物
Lululemon英国官网:加拿大瑜伽服装品牌
2019/01/14 全球购物
园林技术个人的自我评价
2014/02/15 职场文书
企业仓管员岗位职责
2014/06/15 职场文书
2015年感恩父亲节演讲稿
2015/03/19 职场文书
四则混合运算教学反思
2016/02/23 职场文书