У меня есть эта функция в php-скрипте для генерации xml-файла из таблицы mysql.
function createXMLfile($stackarray){
$filePath = '/root/stack.xml';
$dom = new DOMDocument('1.0', 'utf-8');
$root = $dom->createElement('REQUEST');
for($i=0; $i<count($stackarray); $i++){
$stackName = $stackarray[$i]['stack_name'];
$stackSERIAL = $stackarray[$i]['stack_serialnumber'];
$content = $dom->createElement('CONTENT');
$device = $dom->createElement('DEVICE');
$info = $dom->createElement('INFO');
$name = $dom->createElement('NAME', $stackName);
$info->appendChild($name);
$serial = $dom->createElement('SERIAL', $stackSERIAL);
$info->appendChild($serial);
$type = $dom->createElement('TYPE', "NETWORKING");
$info->appendChild($type);
$device->appendChild($info);
$root->appendChild($content);
$module = $dom->createElement('MODULEVERSION', "3.1");
$content->appendChild($module);
$process = $dom->createElement('PROCESSNUMBER', "1");
$content->appendChild($process);
$content->appendChild($device);
$deviceid = $dom->createElement('DEVICEID', "foo");
$root->appendChild($deviceid);
$query = $dom->createElement('QUERY', "SNMPQUERY");
$root->appendChild($query);
}
$dom->appendChild($root);
$dom->save($filePath);
}
В настоящее время он генерирует xml-файл для целых данных в таблице mysql на основе приведенного выше сопоставления полей. Например,
<?xml version="1.0" encoding="utf-8"?>
<REQUEST>
<CONTENT>
<MODULEVERSION>3.1</MODULEVERSION>
<PROCESSNUMBER>1</PROCESSNUMBER>
<DEVICE>
<INFO>
<NAME>Nexus5020 Chassis</NAME>
<SERIAL>SS613390FZT</SERIAL>
<TYPE>NETWORKING</TYPE>
</INFO>
</DEVICE>
</CONTENT>
<DEVICEID>foo</DEVICEID>
<QUERY>SNMPQUERY</QUERY>
</REQUEST>
Структура таблицы Mysql выглядит следующим образом
+----+------------------------+--------------------+
| id | stack_name | stack_serialnumber |
+----+------------------------+--------------------+
| 1 | Nexus5020 Chassis | SS613390FZT |
| 2 | 40x10GE/Supervisor | JA91344BHNK |
| 3 | 6x10GE Ethernet Module | JA71228018M |
| 4 | 8x1/2/4G FC Module | JAB1531020C |
| 5 | Nexus5020 Chassis | SSI13390FZT |
Я хочу сгенерировать специфический XML-файл для каждой строки на основе данных mysql, приведенных выше, используя существующее сопоставление элементов в коде php. Например, приведенная выше таблица содержит 5 строк, поэтому в ней должны быть сгенерированы 5 XML-файлы.
Как мне это сделать? Кто-то указал использовать в скрипте функцию столбца массива [array_column ( array $array , mixed $column_key [, mixed $index_key = null ] )]
. Есть ли другой способ сделать это?