我想知道如何将XML内容添加到普通数组中,而不将其添加为对象。例如,我有这个XML:
<example>
<n1>
<1>I am one</1>
<2>I am two</2>
</n1>
<n2>
<1>I am one</1>
<2>I am two</2>
</n2>
<n3>
<1>I am one</1>
<2>I am two</2>
</n3>
</example>
我将XML添加到变量中:
$xml = simplexml_load_file('xlmfile');
现在,我创建了一个空的错误:
$exarray = array();
现在,当我想将n3添加到$ exarray时,我可以这样做:
array_push($exarray,$xml[2]);
现在,当你print_r($ exarray)时,你会看到:
[0] => SimpleXMLElement Object ( [n1] => I am one [n2] => I am two
所以,这是一个已添加到$ exarray的对象,但是假设您不想将对象添加到$ exarray而是一个数组(nr3 = index 2),如何将nr3添加为数组到$ exarray?另外,如果你最终希望$ exarray是这样的:
[0] => ( [n1] => I am one [n2] => I am two )
[1] => ( [n1] => I am one [n2] => I am two )
[2] => ( [n1] => I am one [n2] => I am two )
Echo $exarray[0][1] to return: I am two
可能吗?
答案 0 :(得分:2)
是的,有可能 - 你可以做到
$ array = json_decode(json_encode((阵列)simplexml_load_string($ XML)),1);
以数组格式获取xml,然后从数组中获取数据
答案 1 :(得分:0)
你可以使用像
这样的东西 $xml = new SimpleXMLElement($xml);
foreach ($xml->n1 as $element) {
foreach($element as $val) {
echo "$val";
}
}
并更改foreach以将值分配给带有计数器的数组。