java解析xml数组_xml字符和xml文件解析成数组

本文探讨了如何使用SimpleXML、XPath和DOM对象三种方式将XML字符串和文件转换为数组,包括详细步骤和代码示例,适合理解XML数据结构和PHP数组操作的开发者。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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++;

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值