xml字符就不写了,直接引用
$xml="<?xml version='1.0' encoding='utf-8'?>
1
jack
18
nanjing1
2
lucy
21
shanghai2
3
jimmy
12
nanjing3
4
lily
5
lily2
";
//通过simplexml_load_string将xml字符串转换成数组
$simple=simplexml_load_string($xml);
$arr=[];
$i=0;
foreach($simple as $k=>$v){
foreach($v as $k1=>$v1){
$arr[$k][$i][$k1]=(string)$v1;
}
$i++;
}
print_r($arr);
第二种方法
将xml文件解析成数组 配合children()和xpath()实现
$simle=simplexml_load_file("xml03.xml");
$arr=[];
$i=1;
foreach($simple->children() as $k=>$v){
foreach($v->children() as $k1=>$v1){
$arr[$k][$i][$k1]=(string)$v1;
}
$i++;
}
$simp=simplexml_load_file("xml03.xml");s
foreach($simp->xpath("/root/stu_info/id") as $k=>$v){
var_dump($v->Attributes());//打印xml标签的属性 Attributes()
}
第三种,利用dom对象实现将xml文件转换成数组
$dom=new DomDocument('1.0','utf-8');
$dom->load("xml03.xml"); // 将文件加载成dom对象
$root=$dom->documentElement() //获取对象里面的根节点
$arr=[];
$i=0;
foreach($root->childNodes as $v){
if($v->nodeType==1){
foreach($v->childNodes as $k1=>$v1){
if($v1->nodeType==1){
$arr[$k->tagName][$i][$k1]=(string)$v1;
}
}
$i++;
}
}