PHP读取XML文件的三种方式

一  用 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";
}
时间: 2024-08-01 02:52:40

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

php读取xml文件的三种实现方法

 代码如下 复制代码 <?php   $doc = new DOMDocument();   $doc->load( 'books.xml' );     $books = $doc->getElementsByTagName( "book" );   foreach( $books as $book )   {   $authors = $book->getElementsByTagName( "author" );   $author =

java读取资源文件的五种方式

package com.zkn.newlearn.others; import java.io.IOException; import java.io.InputStream; import java.util.Properties; import com.zkn.newlearn.gof.singleton.SimpleFactoryTest01; /** * 读取资源文件的五种方式 * @author zkn */ public class ClassReadResourceDemo { p

asp.net读取excel文件的三种方法示例

 这篇文章主要介绍了asp.net读取excel文件的三种方法示例,包括采用OleDB读取Excel文件.引用的com组件读取Excel文件.用文件流读取,需要的朋友可以参考下 方法一:采用OleDB读取Excel文件   把Excel文件当做一个数据源来进行数据的读取操作,实例如下:  代码如下: public DataSet ExcelToDS(string Path)    {    string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;&q

【spring Boot】spring boot获取资源文件的三种方式【两种情况下】

首先声明一点,springboot获取资源文件,需要看是 1>从spring boot默认的application.properties资源文件中获取 2>还是从自定义的资源文件中获取   带着这个想法去看下面几种方式 =============================================================================================== 1>从spring boot默认的application.properties资

.NET读取Excel文件的三种方法的区别_实用技巧

ASP.NET读取Excel文件方法一:采用OleDB读取Excel文件: 把Excel文件当做一个数据源来进行数据的读取操作,实例如下: 复制代码 代码如下: public DataSet ExcelToDS(string Path)   {    string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" +"Data Source="+ Path +";"+"Extended Prop

前端js文件合并三种方式

最近在思考前端js文件该如何合并,当然不包括不能合并文件,而是我们能合并的文件,想了想应该也只有三种方式. 三个方式如下: 1. 一个大文件,所有js合并成一个大文件,所有页面都引用它. 2. 各个页面大文件,各自页面合并生成自己所需js的大文件. 3. 合并多个共用大文件,根据实践情况合并出多个共用js文件,每个页面引用多个共用大文件. 另外在我看来,合并有两个目的: 1. 为了减少请求数. 2. 代码安全考虑(文件分得越多,越容易被人看清). PS:注意我说的不是压缩混淆,只是合并 1. 一

简述Java异步上传文件的三种方式_java

本文为大家分享了三种Java异步上传文件方式,供大家参考,具体内容如下 用第三方控件,如Flash,ActiveX等浏览器插件上传. 使用隐藏的iframe模拟异步上传. 使用XMLHttpRequest2来实现异步上传. 第一种使用浏览器插件上传,需要一定的底层编码功底,在这里我就不讲了,以免误人子弟,提出这点大家可以自行百度. 第二种使用隐藏的iframe模拟异步上传.为什么在这里说的是模拟呢?因为我们其实是将返回结果放在了一个隐藏的iframe中,所以才没有使当前页面跳转,感觉就像是异步操

MyBatis Review——加载mappers映射文件的三种方式

一,通过resource加载映射文件 <!-- 加载映射文件 --> <mappers> <mapper resource="sqlmap/User.xml"/> </mappers> 二,通过mapper接口加载映射文件 <!-- 加载映射文件 --> <mappers> <!-- 通过mapper接口加载映射文件 --> <!-- 遵循规范:需要将mapper接口类名与xml文件映射名称保持一

asp.net读取excel文件的三种方法示例_实用技巧

方法一:采用OleDB读取Excel文件 把Excel文件当做一个数据源来进行数据的读取操作,实例如下: 复制代码 代码如下: public DataSet ExcelToDS(string Path)   {   string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" +"Data Source="+ Path +";"+"Extended Properties=Excel 8.0;&