【发布时间】:2014-03-27 15:25:17
【问题描述】:
我正在尝试解析如下的 xml 文件以创建多维数组。
<workbook xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" >
<Worksheet ss:Name="45">
<Table>
<Row><Cell><Data>232</Data></Cell></Row>
<Row><Cell><Data>Apple</Data></Cell></Row>
</Table>
</Worksheet>
<Worksheet ss:Name="46 - new">
<Table>
<Row><Cell><Data>876</Data></Cell></Row>
<Row><Cell><Data>samsung</Data></Cell></Row>
</Table>
</Worksheet>
这是目前为止的代码。
$xml=simplexml_load_file($xmlfile);
$result= array();
foreach($xml->Worksheet as $worksheet ) {
$result['tab']['name'][]=$worksheet->attributes('ss', TRUE)->Name;
foreach($worksheet as $table){
foreach($table as $row){
foreach($row as $cell){
$result['tab']['units'][]=$cell->Data;
}
}
}
}
print_r($result);
我正在尝试获取如下数组:
items =[
tab=>[
'name' => '45',
'units'=>[
['0'=>'232'],
['1'=>'Apple']
]
]
tab=>[
'name' => '46-new',
'units'=>[
['0'=>'876'],
['1'=>'samsung']
]
]
];
但我得到的结果如下。
array(
[tab]=>array(
[name]=>array
(
[0]=>SimpleXmlElement Object
(
[0]=> 45
)
[1]=>SimpleXmlElement object
(
[1]=>46-new
)
)
[units]=>array
(
[0]=>SimpleXmlElement Object
(
[0]=> Nr
)
[1]=>SimpleXmlElement object
(
[0]=>model
)
[2]=>SimpleXmlElement Object
(
[0]=> 232
)
[3]=>SimpleXmlElement object
(
[0]=>apple
)
.........
)
)
)
相当有挑战性。应该如何修改代码才能达到目标?
【问题讨论】:
标签: php arrays multidimensional-array xml-parsing simplexml