Я имел решение для вас
Во-первых, вы должны разобрать .xml файл в .csv «запятая разделитель». вы можете использовать множество инструментов для этого, вам не нужно писать код. посмотреть на этом сайте
1- http://codestips.com/php-xml-to-csv/.
2- http://www.w3schools.com/php/func_filesystem_fgetcsv.asp.
3- Convert large XML file to CSV in PHP.
Второго: Установить Друпал импорт модуля примечания «http://drupal.org/project/node_import»
импорта узла вы будете импортировать файл CSV и в конфигурации вы будете установить, какой тип вам нужно создать с помощью этого файла. Также вам нужно указать ссылку на поля csv на выбранный тип контента. этот модуль будет генерировать узел для каждой записи csv. ex, если он содержит 100 строк, тогда будет создано 100 узлов. эта ссылка является шаг за шагом руководство «http://drupal.org/node/827750»
другое решение:
1 Является ли создать тип контента под названием Импорт и добавить загрузку поля файл (чтобы загрузить файл XML), а затем создать только один экземпляр.
2- Тогда зацепить node_api «операция отправить» добавить свой собственный код для разбора XML закачанного и итерацию по числу элементов, которые вы имеете в файле
3 Наконец, создать узел программным и установите его значение с дочерним значением элемента xml.
код для создания программного примечания:
$node = new stdClass();
//Main Node Fields
$node->type = 'video'; //This can be any node type
$node->created = time();
$node->changed = $node->created;
$node->promote = 0; // Display on front page ? 1 : 0
$node->sticky = 0; // Display top of page ? 1 : 0
$node->format = 2; // 1:Filtered HTML, 2: Full HTML
$node->status = 1; // Published ? 1 : 0
$node->language = 'en';
/* Custom Fields of Video */
$node->title = $node->name = "string";
$node->field_video_id[0]["value"] = "string";
$node->field_updated[0]['value'] = "string";
// this code must be placed to save the created node
if ($node = node_submit($node)) {
node_save($node);
drupal_set_message(t("Node " . $node->title . " added correctly"));
} else {
drupal_set_message(t("Node " . $node->title . " added incorrectly"), "error");
}
Свяжитесь со мной для получения дополнительной информации.
Вы не можете ускорить 'node_save()' без взлома большого количества модулей ядра ... если скорость является проблемой, лучшим выбором будет изучение структуры базы данных и вставка записей вручную. – Clive
Спасибо, похоже, что это только один вариант. – breethe