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+SqlServer实现分页显示
Oct 09 PHP
PHP脚本的10个技巧(3)
Oct 09 PHP
很实用的一个完整email发送程序
Oct 09 PHP
PHP遍历目录函数opendir()、readdir()、closedir()、rewinddir()总结
Nov 18 PHP
PHP图片处理之图片旋转和图片翻转实例
Nov 19 PHP
php通过array_push()函数添加多个变量到数组末尾的方法
Mar 18 PHP
php实现猴子选大王问题算法实例
Apr 20 PHP
PHP常见漏洞攻击分析
Feb 21 PHP
php数组分页实现方法
Apr 30 PHP
php实现多维数组排序的方法示例
Mar 23 PHP
PHP使用Nginx实现反向代理
Sep 20 PHP
thinkphp框架类库扩展操作示例
Nov 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
WordPress中用于检索模版的相关PHP函数使用解析
2015/12/15 PHP
Apache无法自动跳转却显示目录的解决方法
2020/11/30 PHP
老生常谈php中传统验证与thinkphp框架(必看篇)
2017/06/10 PHP
php检测mysql表是否存在的方法小结
2017/07/20 PHP
JS是否可以跨文件同时控制多个iframe页面的应用技巧
2007/12/16 Javascript
基于jquery的一个图片hover的插件
2010/04/24 Javascript
JS实现遮罩层效果的简单实例
2013/11/12 Javascript
关闭浏览器窗口弹出提示框并且可以控制其失效
2014/04/15 Javascript
Extjs Label的 fieldLabel和html属性值对齐的方法
2014/06/15 Javascript
JavaScript将XML转成JSON的方法
2015/03/12 Javascript
理解javascript封装
2016/02/23 Javascript
javascript实现任务栏消息提示的简单实例
2016/05/31 Javascript
AngularJS执行流程详解
2017/02/17 Javascript
js实现以最简单的方式将数组元素添加到对象中的方法
2017/12/20 Javascript
JS数组属性去重并校验重复数据
2020/01/10 Javascript
[04:26]2014DOTA2国际邀请赛-Newbee顺利进入胜者组决赛 独家专访战神7
2014/07/19 DOTA
详解Python的Lambda函数与排序
2016/10/25 Python
Python中生成Epoch的方法
2017/04/26 Python
Python对文件和目录进行操作的方法(file对象/os/os.path/shutil 模块)
2017/05/08 Python
对Python中range()函数和list的比较
2018/04/19 Python
python使用pygame框架实现推箱子游戏
2018/11/20 Python
使用pyinstaller打包PyQt4程序遇到的问题及解决方法
2019/06/24 Python
python爬取百度贴吧前1000页内容(requests库面向对象思想实现)
2019/08/10 Python
python-numpy-指数分布实例详解
2019/12/07 Python
PyCharm 无法 import pandas 程序卡住的解决方式
2020/03/09 Python
python 录制系统声音的示例
2020/12/21 Python
澳大利亚UGG工厂直销:Australian Ugg Boots
2017/10/14 全球购物
美国婴儿和儿童家具网上商店:ABaby.com
2018/07/02 全球购物
宠物店的创业计划书范文
2014/01/11 职场文书
制药工程专业职业生涯规划范文
2014/03/10 职场文书
海飞丝广告词
2014/03/20 职场文书
消防安全责任书范本
2014/04/15 职场文书
初中教师业务学习材料
2014/05/12 职场文书
公司年底活动方案
2014/08/17 职场文书
学生检讨书怎么写
2015/05/07 职场文书
Django基础CBV装饰器和中间件
2022/03/22 Python