-4

我想知道如何将 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');

现在,我创建一个空 erray:

$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 = 索引 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

那可能吗?

4

2 回答 2

2

是的,这是可能的 - 你可以

$array = json_decode(json_encode((array)simplexml_load_string($xml)),1);

以数组格式获取 xml,然后从数组中获取数据

于 2013-06-06T07:09:52.877 回答
0

你可以使用类似的东西

 $xml = new SimpleXMLElement($xml);

 foreach ($xml->n1 as $element) {   
       foreach($element as $val) {    
            echo "$val";   
       } 
  }

并更改 foreach 以将值分配给带有计数器的数组。

于 2013-06-06T07:17:45.790 回答