我正在尝试从PHP数组生成XML文件。 一切似乎都运行良好,但我无法删除父节点。
这就是我的数组的样子:
这是生成的XML文件
正如你所看到的,我有一些"项目"在名为" item"。
的父节点内我只想知道如何删除名为" item"的父节点。并留下如下结构:
我的PHP代码:
function array_to_xml( $data, $xml_data ) {
foreach( $data as $key => $value ) {
if( is_numeric($key) ){
$key = 'item';
}
if( is_array($value) ) {
$subnode = $xml_data->addChild($key);
array_to_xml($value, $subnode);
} else {
$xml_data->addChild("$key",htmlspecialchars("$value"));
}
}
}
$xml_data = new SimpleXMLElement('<?xml version="1.0"?><data></data>');
array_to_xml($newArrayXml,$xml_data);
//saving generated xml file;
$result = $xml_data->asXML('list.xml')
答案 0 :(得分:0)
当我使用以下数组运行上述代码时,它会输出您要查找的内容:
$newArrayXml = array(
2410687 => array('id' => 2410687),
2440673 => array('id' => 2440673),
2415709 => array('id' => 2415709),
2445675 => array('id' => 2445675)
);
// var_dump($newArrayXml);exit;
function array_to_xml( $data, $xml_data ) {
foreach( $data as $key => $value ) {
if( is_numeric($key) ){
$key = 'item';
}
if( is_array($value) ) {
$subnode = $xml_data->addChild($key);
array_to_xml($value, $subnode);
} else {
$xml_data->addChild("$key",htmlspecialchars("$value"));
}
}
}
$xml_data = new SimpleXMLElement('<?xml version="1.0"?><data></data>');
array_to_xml($newArrayXml,$xml_data);
//saving generated xml file;
$result = $xml_data->asXML('list.xml');
结果:
<?xml version="1.0"?>
<data>
<item><id>2410687</id></item>
<item><id>2440673</id></item>
<item><id>2415709</id></item>
<item><id>2445675</id></item>
</data>
也许问题在于您的阵列。它会在您的照片中显示array(1)
,这意味着您有一个额外的阵列:
$newArrayXml = array(array(
2410687 => array('id' => 2410687),
2440673 => array('id' => 2440673),
2415709 => array('id' => 2415709),
2445675 => array('id' => 2445675)
));
这会生成您不想要的输出。