php读取XML的常见方法实例总结
本文实例讲述了php读取XML的常见方法。分享给大家供大家参考,具体如下:
xml源文件
张映 男 28 tank 男 28
1)DOMDocument读取xml
load('person.xml');//读取xml文件
$humans=$doc->getElementsByTagName("humans");//取得humans标签的对象数组
foreach($humansas$human)
{
$names=$human->getElementsByTagName("name");//取得name的标签的对象数组
$name=$names->item(0)->nodeValue;//取得node中的值,如
$sexs=$human->getElementsByTagName("sex");
$sex=$sexs->item(0)->nodeValue;
$olds=$human->getElementsByTagName("old");
$old=$olds->item(0)->nodeValue;
echo"$name-$sex-$old\n";
}
?>
2)simplexml读取xml
name."-".$tmp->sex."-".$tmp->old."
"; } ?>
3)用php正则表达式来读取数据
(.*?)\<\/humans\>/s",$xml,$humans);//匹配最外层标签里面的内容
foreach($humans[1]as$k=>$human)
{
preg_match_all("/\(.*?)\<\/name\>/",$human,$name);//匹配出名字
preg_match_all("/\(.*?)\<\/sex\>/",$human,$sex);//匹配出性别
preg_match_all("/\(.*?)\<\/old\>/",$human,$old);//匹配出年龄
}
foreach($name[1]as$key=>$val){
echo$val."-".$sex[$key][1]."-".$old[$key][1]."
";
}
?>
4)xmlreader来读取xml数据
open('person.xml');//读取xml数据
$i=1;
while($reader->read()){//是否读取
if($reader->nodeType==XMLReader::TEXT){//判断node类型
if($i%3){
echo$reader->value;//取得node的值
}else{
echo$reader->value."
";
}
$i++;
}
}
?>
PS:这里再为大家提供几款关于xml操作的在线工具供大家参考使用:
在线