У меня есть решение для вас
Во-первых: вам нужно проанализировать ваш файл .xml в .csv «разделитель запятых».
Вы можете использовать множество инструментов для этого, вам не нужно писать код.
посмотрите на эти сайты
1- http://codestips.com/php-xml-to-csv/.
2- http://www.w3schools.com/php/func_filesystem_fgetcsv.asp.
3- Преобразование большого файла XML в CSV в PHP .
Второе: установить импорт заметок модуля drupal "http://drupal.org/project/node_import"
при импорте узла вы импортируете CSV-файл, а в конфигурации вы указываете тип, который вам нужно создать с помощью этого файла. Также вы должны определить csv поля, ссылающиеся на выбранный тип контента. этот модуль будет генерировать узел для каждой записи CSV. Например, если он содержит 100 строк, то будет создан 100 узел. эта ссылка является пошаговым руководством "http://drupal.org/node/827750"
другое решение:
1- Создает тип контента с именем Import и добавляет загрузку в поле файла (для загрузки файла 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");
}
Свяжитесь со мной для получения дополнительной информации.