以下示例使用php中的正则表达式,进行xml文件的读取。
1、xml文件内容,person.xml
复制代码 代码示例:
<?xml version="1.0 encoding="UTF-8"?>
<humans>
<zhangying>
<name>张映</name>
<sex>男</sex>
<old>28</old>
</zhangying>
<tank>
<name>tank</name>
<sex>男</sex>
<old>28</old>
</tank>
</humans>
2、php处理文件,rexml.php
复制代码 代码示例:
<?php
/***
@ 使用正则表达式读取xml文件
@ Recoded By Androidyue
@ site www.jb200.com
***/
$xml = "";
//只读模式打开所读取的文件
$f = fopen('person.xml', 'r');
//格式化获取读取的数据
while( $data = fread( $f, 4096 ) ) {
$xml .= $data;
}
//关闭一个已打开的文件指针
fclose( $f );
// 上面读取数据
preg_match_all( "//<humans/>(.*?)/<//humans/>/s", $xml, $humans ); //匹配最外层标签里面的内容
//格式化数据
foreach( $humans[1] as $k=>$human ){
preg_match_all( "//<name/>(.*?)/<//name/>/", $human, $name ); //匹配出名字
preg_match_all( "//<sex/>(.*?)/<//sex/>/", $human, $sex ); //匹配出性别
preg_match_all( "//<old/>(.*?)/<//old/>/", $human, $old ); //匹配出年龄
}
//处理结果数据
foreach($name[1] as $key=>$val){
echo $val." - ".$sex[$key][1]." - ".$old[$key][1]."<br>" ;
}
?>
注意:
两个文件的编码格式,请保持一致,最好都设成UTF8的字符集,以免出现莫名的错误。