php怎么解析xml,php解析xml方法实例详解
本文以实例形式详细讲述了php解析xml方法。分享给大家供大家参考。具体分析如下:
books.xml文件如下:
Harry Potter
J K. Rowling
2005
29.99
Everyday Italian
Giada De Laurentiis
2005
30.00
Learning XML
Erik T. Ray
2003
39.95
1、DOM解析XML
//创建一个DOMDocument对象
$doc=new DOMDocument();
//加载XML文件
$doc->load("books.xml");
//获取所有的book标签
$bookDom=$doc->getElementsByTagName("book");
foreach($bookDom as $book){
$title = $book->getElementsByTagName("title")->item(0)->nodeValue;
$author = $book->getElementsByTagName("author")->item(0)->nodeValue;
$year = $book->getElementsByTagName("year")->item(0)->nodeValue;
$price = $book->getElementsByTagName("price")->item(0)->nodeValue;
echo "title:".$title."
";
echo "author:".$author."
";
echo "year:".$year."
";
echo "price:".$price ."
";
echo "***********************************
";
}
?>
2、xml_parse_into_struct
创建解析器,将xml数据解析到数组,释放解析器,再有就是从数组中提取想要的值。
// 读取xml文件
$file = "books.xml";
$data = file_get_contents($file);
// 创建解析器
$parser = xml_parser_create();
// 将 XML 数据解析到数组中
xml_parse_into_struct($parser, $data, $vals, $index);
// 释放解析器
xml_parser_free($parser);
// 数组处理
$arr = array();
$t=0;
foreach($vals as $value) {
$type = $value['type'];
$tag = $value['tag'];
$level = $value['level'];
$attributes = isset($value['attributes'])?$value['attributes']:"";
$val = isset($value['value'])?$value['value']:"";
switch ($type) {
case 'open':
if ($attributes != "" || $val != "") {
$arr[$t]['tag'] = $tag;
$arr[$t]['attributes'] = $attributes;
$arr[$t]['level'] = $level;
$t++;
}
break;
case "complete":
if ($attributes != "" || $val != "") {
$arr[$t]['tag'] = $tag;
$arr[$t]['attributes'] = $attributes;
$arr[$t]['val'] = $val;
$arr[$t]['level'] = $level;
$t++;
}
break;
}
}
echo "
";
print_r($arr);
echo "
";
?>
3、用 SAX 解析器读取 XML-----XML Simple API(SAX)解析器
$file="books.xml";
$xml = simplexml_load_file($file);
echo "
";
print_r($xml);
echo "
";
?>
希望本文所述对大家的php程序设计有所帮助。
php怎么解析xml,php解析xml方法实例详解相关推荐
- php xml 实例教程,php解析xml方法实例详解,解析xml实例详解_PHP教程
php解析xml方法实例详解,解析xml实例详解 本文以实例形式详细讲述了php解析xml方法.分享给大家供大家参考.具体分析如下: books.xml文件如下: Harry Potter J K. ...
- oracle大对象实例_Oracle解析复杂json的方法实例详解
问题背景: 当前在Oracle数据库(11G之前的版本)解析json没有可以直接使用的系统方法,网上流传的PLSQL脚本大多也只可以解析结构较单一的json串,对于结构复杂的json串还无法解析.如此 ...
- python之33个关键字详解_Python解析、提取url关键字的实例详解
解析url用的类库: python2版本: from urlparse import urlparse import urllib python3版本: from urllib.parse impor ...
- android+发邮件,Android发送邮件的方法实例详解
Android发送邮件的方法实例详解 时间:2021-05-20 本文实例讲述了Android发送邮件的方法.分享给大家供大家参考,具体如下: 在android手机中实现发送邮件的功能也是不可缺少的. ...
- android 实现毫秒定时器,Android实现定时器的五种方法实例详解
一.Timer Timer是Android直接启动定时器的类,TimerTask是一个子线程,方便处理一些比较复杂耗时的功能逻辑,经常与handler结合使用. 跟handler自身实现的定时器相比, ...
- java condition详解_Java使用Condition控制线程通信的方法实例详解
Java使用Condition控制线程通信的方法实例详解 发布于 2020-4-20| 复制链接 摘记: 本文实例讲述了Java使用Condition控制线程通信的方法.分享给大家供大家参考,具体如下 ...
- python装饰器函数-Python函数装饰器常见使用方法实例详解
本文实例讲述了Python函数装饰器常见使用方法.分享给大家供大家参考,具体如下: 一.装饰器 首先,我们要了解到什么是开放封闭式原则? 软件一旦上线后,对修改源代码是封闭的,对功能的扩张是开放的,所 ...
- java servlet init方法_JSP开发Servlet重写init()方法实例详解
jsp开发servlet重写init()方法实例详解 写一个servlet时,有时需要我们重写该servlet的初始化方法,然后,究竟是重写init(servletconfig config),还是重 ...
- android自定义view案例,Android自定义View的实现方法实例详解
一.自绘控件 下面我们准备来自定义一个计数器View,这个View可以响应用户的点击事件,并自动记录一共点击了多少次.新建一个CounterView继承自View,代码如下所示: 可以看到,首先我们在 ...
- java 获取用户的MAC地址多种方法实例详解
java 获取用户的MAC地址多种方法实例详解 这篇文章主要介绍了JAVA实现获取用户的MAC地址的多种方法实例,需要的朋友可以参考下 java实现获取用户的MAC地址方法: 方法一:将本机地址与局域 ...
最新文章
- 平台如何限制ip流量_ABTest 平台设计 - 如何进行流量分桶
- mysql的in查询是可以用到索引吗?亲测详解
- new relic 官方简介
- 你可能不知道的Python面试秘籍 干货满满(附带参考答案)上篇
- 你有一笔新订单 语音_坐电梯动口不动手,浦东企业新技术实现乘坐电梯“零接触”!...
- 状态栏编程(显示系统时间和进度条)
- ASP .NET MVC 之Entity Framework入门教程及源码
- python添加excel模块,Python Excel操作——xlrd、xlwd,,读取1、导入模块 i
- python的异常处理及异常类定义
- 使用Python把树莓派改造成一个语音助手
- 手机如何看python文件大小_如何安全地检查上传文件的大小?(How to check size of uploaded file safely in bottlepy?)...
- 实验假设与分析方法(参数与非参检验)
- IBC 2019 五篇文章阅读笔记
- 希腊字母表及其读音与意义
- 计算机思维测试题,孩子逻辑思维测试题有哪些
- 亿级用户百TB级数据的 AIOps 技术实践之路(增强版)
- 手把手做一个JSP入门程序(一):程序基本介绍(JSP)
- acm——男人的承诺
- 小白安装linux系统-u盘安装lubuntu
- 实习总结1-小试牛刀(面试经历1)
热门文章
- MATLAB入门教程(3):数组的创建与使用
- 深入解析 Raft 模块在云溪数据库中的优化改造(上)
- 不能右键新建html文件,鼠标右键没有新建文本文档选项怎么办?
- 数学分析教程(科大)——3.5笔记+习题
- STM32+OLED显示屏制作指针式电子钟
- Oracle 12c 中修改PDB数据库的日志归档模式
- linux 字符终端F1-F6 图形终端F7- F12 简介
- pdfboss转换器提供在线pdf转换word免费的api接口
- Seek Tiger一级市场的王牌,基于web3.0概念的聚合平台强势来袭
- html多级下拉菜单代码,jQuery实现的多级下拉菜单效果代码