一  用 
simplexml_load_file 读取xml文件

<?php
$xml_array=simplexml_load_file('person.xml'); //将XML中的数据,读取到数组对象中 foreach($xml_array as $tmp)
{
echo $tmp->name."-".$tmp->sex."-".$tmp->old."<br>";
}
?>

二 
DOMDocument读取xml

<?php
$doc = new DOMDocument();
$doc->load('xml.xml'); //读取xml文件
$humans = $doc->getElementsByTagName( "humans" ); //取得humans标签的对象数组
foreach( $humans as $human )
{
$names = $human->getElementsByTagName( "name" ); //取得name的标签的对象数组
$name = $names->item(0)->nodeValue; //取得node中的值,如<name> </name>
$sexs = $human->getElementsByTagName( "sex" );
$sex = $sexs->item(0)->nodeValue;
$olds = $human->getElementsByTagName( "old" );
$old = $olds->item(0)->nodeValue;
echo "$name - $sex - $old\n";
}

三 
 利用正则来获取数据

<?php
header("content-type:text/html;charset=utf-8"); $xml = '';
$f = fopen("xml.xml", "r"); while($data = fread($f, 2096))
{
$xml .= $data;
}
fclose($f); preg_match_all('/\<humans\>(.*?)\<\/humans\>/s', $xml, $humans); foreach($humans[1] as $human)
{
preg_match_all('/\<name\>(.*?)\<\/name\>/s', $human, $names);
preg_match_all('/\<sex\>(.*?)\<\/sex\>/s', $human, $sexes);
preg_match_all('/\<old\>(.*?)\<\/old\>/s', $human, $olds);
} foreach($names[1] as $k=>$name)
{
echo $names[1][$k].'-'.$sexes[1][$k].'-'.$olds[1][$k]."\n";
}

PHP读取XML文件的三种方式的更多相关文章

  1. java读取XML文件的四种方式

    java读取XML文件的四种方式 Xml代码 <?xml version="1.0" encoding="GB2312"?> <RESULT& ...

  2. 解析Xml文件的三种方式及其特点

    解析Xml文件的三种方式 1.Sax解析(simple api  for xml) 使用流式处理的方式,它并不记录所读内容的相关信息.它是一种以事件为驱动的XML API,解析速度快,占用内存少.使用 ...

  3. Android-----解析xml文件的三种方式

    SAX解析方法介绍: SAX(Simple API for XML)是一个解析速度快并且占用内存少的XML解析器,非常适合用于Android等移动设备.SAX解析XML文件采用的是事件驱动,也就是说, ...

  4. 读取XML文件的几种方式的效率分析

    第一种:使用XmlReader来读取. Stopwatch sw = Stopwatch.StartNew(); List<Dictionary<string, string>> ...

  5. 解析Xml文件的三种方式

    1.Sax解析(simple api  for xml) 使用流式处理的方式,它并不记录所读内容的相关信息.它是一种以事件为驱动的XML API,解析速度快,占用内存少.使用回调函数来实现. clas ...

  6. Velocity中加载vm文件的三种方式

    Velocity中加载vm文件的三种方式: a.  加载classpath目录下的vm文件 /** * 初始化Velocity引擎 * --VelocityEngine是单例模式,线程安全 * @th ...

  7. android中解析文件的三种方式

    android中解析文件的三种方式     好久没有动手写点东西了,最近在研究android的相关技术,现在就android中解析文件的三种方式做以下总结.其主要有:SAX(Simple API fo ...

  8. 前端js,css文件合并三种方式,bat命令

    前端js,css文件合并三种方式,bat命令 前端js文件该如何合并三个方式如下:1. 一个大文件,所有js合并成一个大文件,所有页面都引用它.2. 各个页面大文件,各自页面合并生成自己所需js的大文 ...

  9. 转 Velocity中加载vm文件的三种方式

    Velocity中加载vm文件的三种方式   velocitypropertiespath Velocity中加载vm文件的三种方式:    方式一:加载classpath目录下的vm文件 Prope ...

  10. 【开发笔记】- Java读取properties文件的五种方式

    原文地址:https://www.cnblogs.com/hafiz/p/5876243.html 一.背景 最近,在项目开发的过程中,遇到需要在properties文件中定义一些自定义的变量,以供j ...

随机推荐

  1. 学习JavaScript第三周

    字符串的遍历,字符串虽是简单数据类型却有对应的属性和方法,这是因为字符串是包装类型(当然布尔类型和数字类型也是包装类型),临时具有对象的属性和方法,在使用完后就会释放对象. 简单的淡入淡出的轮播图,原 ...

  2. pytorch代码练习

    pytorch练习 使用torch.Tensor定义数据 , tensor的意思是张量,是数字各种形式的总称,可以定义数.向量.二维数组和张量. import torch # 可以是一个数 x = t ...

  3. Android 自定义SeekBar (二)

    一.前言 本文在 上节 的基础上,讲解自定义拖动条的实现思路. 二.思路 先在res/values文件夹下,自定义控件属性: <?xml version="1.0" enco ...

  4. sql server 自动核算

    USE tempdb; CREATE TABLE #temptable ( [姓名] NVARCHAR(255), [加班日期] DATE, [加班时长] DECIMAL(8, 2) ); INSER ...

  5. CentOS7 使用Mariadb 安装 hive

    前提:已成功安装hadoop ──────────1. MariaDB安装 ──────────第一步 参照以下内容安装MariaDBhttps://www.linuxprobe.com/chapte ...

  6. MySql创建表遇到的问题

    SQL语句如下: CREATE TABLE IF NOT EXISTS `student`{ `id` INT(4) NOT NULL COMMENT '学号', `name` VARCHAR(30) ...

  7. Tutorial_WorkflowProcessor usage in AX 2012

    Check under system administration if the BC proxy and workflow excecution account are still valid. C ...

  8. python 猜数字

    方法一 import randomif __name__ == '__main__':    yourname = input("你好! 你的名字是什么?\n");    prin ...

  9. Microsoft SQL Server,错误: 3023

    对数据库的备份.文件操作(如 ALTER DATABASE ADD FILE)以及加密更改必须序列化.请在当前备份或文件操作完成后重新发出该语句.ALTER DATABASE 语句失败. (Micro ...

  10. CH573 CH582 CH579蓝牙从机(peripheral)例程讲解三(蓝牙服务修改)

    修改服务需要对蓝牙比较熟悉的工程师去完成,否则在例程功能满足自己需求时,不建议修改,很容易改错,下面就简单介绍下如何在别的char添加一个nofify属性. step1: 给Simple Profil ...