【发布时间】:2018-08-10 17:30:16
【问题描述】:
例子:
<school>
<students>
<student idNumber="123" enrollmentNo="E101">
<name>
<firstname>Jack</firstname>
<lastname>Harmor</lastname>
<standard>7th</standard>
</name>
</student>
<student idNumber="243">
<name>
<firstname>Cris</firstname>
<lastname>Warner</lastname>
<standard>5th</standard>
</name>
</student>
<student idNumber="345">
<name>
<firstname>Rick</firstname>
<lastname>Corner</lastname>
<standard>6th</standard>
</name>
</student>
</students>
<fees type="teaching">
<fifth>100</fifth>
<sixth>110</sixth>
<seventh>120</seventh>
</fees>
</school>
我想创建一个如下所示的数组
array(
[students_student_name_firstname0]=>Jack,
[students_student_name_lastname0]=>Harmor,
[students_student_name_standard0]=>7th,
[students_student_name_firstname1]=>Cris,
[students_student_name_lastname1]=>Warner,
[students_student_name_standard1]=>5th,
[students_student_name_firstname2]=>Rick,
[students_student_name_lastname2]=>Corner,
[students_student_name_standard2]=>6th,
[students_fifth0]=>100,
[students_sixth0]=>110,
[students_seventh0]=>120,
[attributes]=>array(
[student0]=>array(
[idNumber]=>123,
[enrollmentNo]=>E101
),
[student1]=>array(
[idNumber]=>243
),
[student2]=>array(
[idNumber]=>345
)
)
);
上面是这种 XML 可能被发送以获取数据的示例,但问题是 XML 的任何级别可能是级别 1、2、3、..、N,所以我怎样才能获取所有数据如上所述的单/二维数组(这意味着数组的有限级别)以及动态存储其键名称和值以及属性名称及其特定标签的值的最简单方法是什么?或者,如果您有更好的方法来做到这一点,那么您也可以分享。我对此一无所知,所以请帮助我。 提前致谢。
【问题讨论】:
-
您预期的输出数组是该格式的要求,还是您只是想将 xml 组织成一个可访问的数组,以便将其发送到任何地方进行处理?
-
使用这样的平面数组似乎麻烦多于其价值。我推荐
$array = json_decode( json_encode( simplexml_load_string( $xml_string ) ), true );,这样您就可以自信地进行迭代、排序等……而无需执行子字符串检查。 -
是的 dmotors 我只是想将它组织成易于访问的数组。
-
MonkeyZeus 它返回给我 DOMElement Object ( )
-
不,它没有。你是如何得到你的 XML 字符串的?
标签: php mysql xml xml-parsing