本文以实例形式详细讲述了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方法实例详解相关推荐

  1. php xml 实例教程,php解析xml方法实例详解,解析xml实例详解_PHP教程

    php解析xml方法实例详解,解析xml实例详解 本文以实例形式详细讲述了php解析xml方法.分享给大家供大家参考.具体分析如下: books.xml文件如下: Harry Potter J K. ...

  2. oracle大对象实例_Oracle解析复杂json的方法实例详解

    问题背景: 当前在Oracle数据库(11G之前的版本)解析json没有可以直接使用的系统方法,网上流传的PLSQL脚本大多也只可以解析结构较单一的json串,对于结构复杂的json串还无法解析.如此 ...

  3. python之33个关键字详解_Python解析、提取url关键字的实例详解

    解析url用的类库: python2版本: from urlparse import urlparse import urllib python3版本: from urllib.parse impor ...

  4. android+发邮件,Android发送邮件的方法实例详解

    Android发送邮件的方法实例详解 时间:2021-05-20 本文实例讲述了Android发送邮件的方法.分享给大家供大家参考,具体如下: 在android手机中实现发送邮件的功能也是不可缺少的. ...

  5. android 实现毫秒定时器,Android实现定时器的五种方法实例详解

    一.Timer Timer是Android直接启动定时器的类,TimerTask是一个子线程,方便处理一些比较复杂耗时的功能逻辑,经常与handler结合使用. 跟handler自身实现的定时器相比, ...

  6. java condition详解_Java使用Condition控制线程通信的方法实例详解

    Java使用Condition控制线程通信的方法实例详解 发布于 2020-4-20| 复制链接 摘记: 本文实例讲述了Java使用Condition控制线程通信的方法.分享给大家供大家参考,具体如下 ...

  7. python装饰器函数-Python函数装饰器常见使用方法实例详解

    本文实例讲述了Python函数装饰器常见使用方法.分享给大家供大家参考,具体如下: 一.装饰器 首先,我们要了解到什么是开放封闭式原则? 软件一旦上线后,对修改源代码是封闭的,对功能的扩张是开放的,所 ...

  8. java servlet init方法_JSP开发Servlet重写init()方法实例详解

    jsp开发servlet重写init()方法实例详解 写一个servlet时,有时需要我们重写该servlet的初始化方法,然后,究竟是重写init(servletconfig config),还是重 ...

  9. android自定义view案例,Android自定义View的实现方法实例详解

    一.自绘控件 下面我们准备来自定义一个计数器View,这个View可以响应用户的点击事件,并自动记录一共点击了多少次.新建一个CounterView继承自View,代码如下所示: 可以看到,首先我们在 ...

  10. java 获取用户的MAC地址多种方法实例详解

    java 获取用户的MAC地址多种方法实例详解 这篇文章主要介绍了JAVA实现获取用户的MAC地址的多种方法实例,需要的朋友可以参考下 java实现获取用户的MAC地址方法: 方法一:将本机地址与局域 ...

最新文章

  1. 平台如何限制ip流量_ABTest 平台设计 - 如何进行流量分桶
  2. mysql的in查询是可以用到索引吗?亲测详解
  3. new relic 官方简介
  4. 你可能不知道的Python面试秘籍 干货满满(附带参考答案)上篇
  5. 你有一笔新订单 语音_坐电梯动口不动手,浦东企业新技术实现乘坐电梯“零接触”!...
  6. 状态栏编程(显示系统时间和进度条)
  7. ASP .NET MVC 之Entity Framework入门教程及源码
  8. python添加excel模块,Python Excel操作——xlrd、xlwd,,读取1、导入模块 i
  9. python的异常处理及异常类定义
  10. 使用Python把树莓派改造成一个语音助手
  11. 手机如何看python文件大小_如何安全地检查上传文件的大小?(How to check size of uploaded file safely in bottlepy?)...
  12. 实验假设与分析方法(参数与非参检验)
  13. IBC 2019 五篇文章阅读笔记
  14. 希腊字母表及其读音与意义
  15. 计算机思维测试题,孩子逻辑思维测试题有哪些
  16. 亿级用户百TB级数据的 AIOps 技术实践之路(增强版)
  17. 手把手做一个JSP入门程序(一):程序基本介绍(JSP)
  18. acm——男人的承诺
  19. 小白安装linux系统-u盘安装lubuntu
  20. 实习总结1-小试牛刀(面试经历1)

热门文章

  1. MATLAB入门教程(3):数组的创建与使用
  2. 深入解析 Raft 模块在云溪数据库中的优化改造(上)
  3. 不能右键新建html文件,鼠标右键没有新建文本文档选项怎么办?
  4. 数学分析教程(科大)——3.5笔记+习题
  5. STM32+OLED显示屏制作指针式电子钟
  6. Oracle 12c 中修改PDB数据库的日志归档模式
  7. linux 字符终端F1-F6 图形终端F7- F12 简介
  8. pdfboss转换器提供在线pdf转换word免费的api接口
  9. Seek Tiger一级市场的王牌,基于web3.0概念的聚合平台强势来袭
  10. html多级下拉菜单代码,jQuery实现的多级下拉菜单效果代码