[英]Generate XML file in PHP
我正在嘗試從PHP數組生成XML文件。 一切看起來都很好,但是我無法刪除父節點。
這是我的數組的樣子:
這是生成的XML文件
如您所見,我在名為“ item”的父節點中有一些“ items”。
我只想知道,如何刪除名為“ 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')
當我使用以下數組運行上述代碼時,它將輸出您要查找的內容:
$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)
));
這將生成您不需要的輸出。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.