Php 如何将数组转换为XML,并将整数索引转换为超级节点
我有一个如下所示的数组:Php 如何将数组转换为XML,并将整数索引转换为超级节点,php,xml,Php,Xml,我有一个如下所示的数组: ... array('info' => array( array( 'key' => $key1, 'value' => $value1 ), array( 'key' => $
...
array('info' => array(
array(
'key' => $key1,
'value' => $value1
),
array(
'key' => $key2,
'value' => $value2
)
)
);
...
我有如下XML转换函数:
...
public function createXML($array, $xml = false)
{
if($xml === false){
$xml = new SimpleXMLElement('<info/>');
}
foreach($array as $key => $value){
if(is_array($value)){
$this->createXML($value, $xml->addChild($key));
} else {
$xml->addChild($key, $value);
}
}
return $xml->asXML();
}
...
。。。
公共函数createXML($array,$xml=false)
{
如果($xml==false){
$xml=新的SimpleXMLElement(“”);
}
foreach($key=>$value的数组){
if(是_数组($value)){
$this->createXML($value,$xml->addChild($key));
}否则{
$xml->addChild($key,$value);
}
}
返回$xml->asXML();
}
...
下面是XML:
<Info>
<0>
<Key>$key1</Key>
<Value>$value1</Value>
</0>
<1>
<Key>$key2</Key>
<Value>$value2</Value>
</1>
</Info>
$key1
$value1
$key2
$value2
但我希望得到以下格式的XML:
...
<Info>
<Key>$key1</Key>
<Value>$value1</Value>
</Info>
<Info>
<Key>$key2</Key>
<Value>$value2</Value>
</Info>
...
。。。
$key1
$value1
$key2
$value2
...
如何更新createXML函数以获得上述格式的XML?问题是在这里
if(is_array($value)){
$this->createXML($value, $xml->addChild($key));
} else {
当您知道$value
是一个数组时,您可以执行此操作。这意味着您将在一个
标记下添加所有数据(在本例中为两个元素)。由于这两个值没有元素名,它将使用您获得的数值
如果您一次只传递一个,您可以将它们添加到它们自己的元素下
if(is_array($value)){
foreach($value as $value2){
$this->createXML($value2, $xml->addChild($key));
}
} else {
想要的是无效的XML这不是无效的XML,实际上我从第三方API响应中得到了相同的XML,经过一些检查后,我想在其他API请求中发送相同的XML。