我的编程空间,编程开发者的网络收藏夹
学习永远不晚
位置:首页-资讯-开源

批量导入XML数据到drupal系统的方法

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

批量导入XML数据到drupal系统的方法

本文实例讲述了批量导入XML数据到drupal系统的方法。分享给大家供大家参考。具体实现方法如下:

如果你想把其它网站的数据批量导入到drupal系统中,可以采用本文所述代码。前提条件是,你要把原来网站的数据生成XML格式!

生成XML的工具有很多,有个叫 xml.class.php的类,可以试用一下,你也可以自己写PHP代码来实现。

生成XML文件后,通过这个模块,直接上传,就可以把它导入到drupal系统了。

该模块还可以对你导入的数据进行自动分类(Taxonomy整合)。

以下为该模块的部分精华源代码,感兴趣的朋友可以测试运行一下本实例。主要功能代码如下:


复制代码代码如下:<?php

function import_form_submit($form, &$form_state) {

$validators = array('file_validate_extensions' => array('upload_file'),);

if ($file = file_save_upload('upload_file', $validators)) {

$fd = fopen($file->filepath, "rb");

if (!$fd) {

form_set_error('upload_file', t('Import failed: file %filename cannot be read.', array('%filename' => $file->filename)));

}

else {

$info = fstat($fd);

$len = $info["size"];

$text = fread($fd, $len);

fclose($fd);

drupal_set_message(t('Loaded file %filename. Now processing it.', array('%filename' => $file->filename)));

$form_state['values']['file'] = $file;

import_xml_invoke_import($text, $form_state['values']);

}

}

else {

form_set_error('upload_file', t('Import failed: file was not uploaded.'));

}

}

function parseMol($mvalues) {

for ($i=0; $i < count($mvalues); $i++)

$mol[$mvalues[$i]["tag"]] = $mvalues[$i]["value"];

return new ImportXml($mol);

}

class ImportXml {

var $tushushangpin;

var $shangpindaima;

var $shuming;

var $congshuming;

var $fushucongshuming;

var $zhuzuozhe;

var $chubanzhe;

var $benbanbanci;

var $yinci;

var $dingjia;

function ImportXml ($aa) {

foreach ($aa as $k=>$v)

$this->$k = $aa[$k];

}

}

function import_xml_invoke_import(&$text) {

// parse the data:

$xml_parser = drupal_xml_parser_create($text);

xml_parser_set_option($xml_parser,XML_OPTION_CASE_FOLDING,0);

xml_parser_set_option($xml_parser,XML_OPTION_SKIP_WHITE,1);

xml_parse_into_struct($xml_parser,$text,$values,$tags);

xml_parser_free($xml_parser);

// now begin fetch the value

foreach ($tags as $key=>$val) {

if ($key == "tushushangpin") {

$molranges = $val;

for ($i=0; $i < count($molranges); $i+=2) {

$offset = $molranges[$i] + 1;

$len = $molranges[$i + 1] - $offset;

$tdb[] = parseMol(array_slice($values, $offset, $len));

}

} else {

continue;

}

}

foreach($tdb as $value){

$node = array();

$node = new stdClass;

$node->type = "product";

$node->status = 1;

$node->uid = 1;

$node->title = $value->shuming;

// $node->body = $value->neirongtiyao;

$node->field_product_shangpindaima[0]['value'] = $value->shangpindaima;

$node->field_product_shuming[0]['value'] = $value->shuming; // use ubercart

$node->field_product_congshuming[0]['value'] = $value->congshuming;

$node->field_product_fushucongshuming[0]['value'] = $value->fushucongshuming;

$node->field_product_zhuzuozhe[0]['value'] = $value->zhuzuozhe;

$node->field_product_chubanzhe[0]['value'] = $value->chubanzhe;

$node->field_product_benbanbanci[0]['value'] = $value->benbanbanci;

$node->field_product_yinci[0]['value'] = $value->yinci;

$node->field_product_dingjia[0]['value'] = $value->dingjia;

// if $value->tongjifenlei is not null then :

if($value->tongjifenlei){

$tj_vid = 1;

if($tid = (int) db_result(db_query('SELECT tid FROM {term_data} WHERE name = "%s" AND vid = %d', $value->tongjifenlei,$tj_vid))){

$tj_tid = $tid;

}else{

// vocabulary ID is hard coded for this example

$autoterm = array(

'name' => $value->tongjifenlei, // or whatever you want the auto-term to be named

'parent' => 0,

'vid' => $tj_vid,

);

taxonomy_save_term($autoterm);

$tj_tid = (int) db_result(db_query('SELECT MAX(tid) FROM {term_data} WHERE vid = %d', $vid));

}

$node->taxonomy[$tj_vid][$tj_tid] = $tj_tid;

}

node_save($node);

}

drupal_set_message("Import Successful!");

}

?>

希望本文所述对大家的drupal建站有所帮助。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

批量导入XML数据到drupal系统的方法

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

批量导入XML数据到drupal系统的方法

本文实例讲述了批量导入XML数据到drupal系统的方法。分享给大家供大家参考。具体实现方法如下: 如果你想把其它网站的数据批量导入到drupal系统中,可以采用本文所述代码。前提条件是,你要把原来网站的数据生成XML格式! 生成XML的工
2022-06-12

drupal导入数据的实现方法

本文实例讲述了drupal导入数据的实现方法。分享给大家供大家参考。具体实现方法如下: 一、问题: 最近一个项目是用drupal实现的。最后,面临一些书的数据的导入。找了些drupal的模块,不太好用。 最后的方法是创建一个基本页面,php
2022-06-12

mysql批量导入数据的方法是什么

MySQL批量导入数据的方法有以下几种:1. 使用LOAD DATA INFILE语句:通过LOAD DATA INFILE语句可以将数据从一个文本文件或CSV文件批量导入到MySQL表中。语法格式如下:```LOAD DATA INFIL
2023-09-27

plsql批量导入数据的方法是什么

PL/SQL批量导入数据的方法有多种,取决于数据来源和格式。以下是几种常用的方法:1. 使用INSERT INTO语句:使用PL/SQL编写INSERT INTO语句来逐行插入数据。这种方法适用于数据量较小的情况。2. 使用FORALL语句
2023-10-18

Android批量插入数据到SQLite数据库的方法

Android中在sqlite插入数据的时候默认一条语句就是一个事务,因此如果存在上万条数据插入的话,那就需要执行上万次插入操作,操作速度可想而知。因此在Android中插入数据时,使用批量插入的方式可以大大提高插入速度。有时需要把一些数据
2022-06-06

java批量导入避免重复数据的方法是什么

在Java中批量导入数据时避免重复数据的方法可以有以下几种:1. 使用数据库的唯一约束:在批量导入数据之前,先查询数据库中已存在的数据,然后在插入新数据之前进行判断,如果存在重复数据则不插入,可以使用数据库的唯一约束来实现。2. 使用Has
2023-08-19

SpringBoot用多线程批量导入数据库实现方法

这篇文章主要介绍了SpringBoot用多线程批量导入数据库实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧
2023-02-03

SQLServer数据批量导出的方法是什么

在SQL Server中,可以使用bcp命令行实用程序来进行数据批量导出。以下是具体的步骤:打开命令提示符(cmd)窗口。输入以下命令来导出数据:bcp [数据库名].[模式名].[表名] out [导出文件路径] -c -T其中,数据库
SQLServer数据批量导出的方法是什么
2024-04-09

数据库批量插入数据的三种方法

一、准备工作 测试环境:SpringBoot项目+MybatisPlus框架+MySQL数据库+Lombok 二、导入依赖 dependency> groupId>org.springframework.boot
2023-08-20

MySQL中大数据量的导入导出方法

在MySQL中,导入和导出大量数据可以使用以下几种方法:使用LOAD DATA INFILE和SELECT ... INTO OUTFILE命令:LOAD DATA INFILE用于将外部文件中的数据导入到MySQL表中,而SELECT
MySQL中大数据量的导入导出方法
2024-10-21

Java将Excel数据导入到数据库的方法

小编给大家分享一下Java将Excel数据导入到数据库的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!所用Jar包1. sqljdbc4.jar连接数据库的J
2023-05-30

Mybatis批量插入大量数据的方法有哪些

本文小编为大家详细介绍“Mybatis批量插入大量数据的方法有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“Mybatis批量插入大量数据的方法有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。Mybat
2023-07-05

编程热搜

  • wordpress错位如何解决
    这篇文章主要介绍“wordpress错位如何解决”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“wordpress错位如何解决”文章能帮助大家解决问题。wordpress
    wordpress错位如何解决
  • 帝国cms调用栏目别名的修改步骤
    请留意下面的修改方法 修改后栏目别名使用 !--bname--] 调用 打开e/class/t_functions.php搜索定位到带模板的栏目导航标签修改1复制代码代码如下://替换变量$bclassname=$class_r[$clas
    帝国cms调用栏目别名的修改步骤
  • 动易Cms MAC验证视图失败的解决方法
    “/”应用程序中的服务器错误。 -------------------------------------------------------------------------------- 验证视图状态 MAC
    动易Cms  MAC验证视图失败的解决方法
  • DEDECMS如何支持中文水印
    DEDECMS如何支持中文水印?修改/include/inc_photograph.php,在165行处加这行代码:$w_text = iconv("GB2312","UTF-8",$w_text);OK,现在可以用中文做水印了,但默认的字体大小是5,中文字体
    DEDECMS如何支持中文水印
  • 快速了解Discuz!程序文件功能
    相信有不少人热衷于基于修改原有系统文件所做的插件,当然了解程序文件功能是最重要的,下面我把Discuz! X2.0主要的程序文件功能说一下。Tips:Q:针对说明的文件是?A:我只基于原版文件对upload目录中基本的程序文件(php,ht
    快速了解Discuz!程序文件功能
  • DedeCMS编辑器fck更换成eWebEditor编辑器具体步骤
    将eWebEditor编辑器插入DEDE后台的效果: 完全Word在线编辑的功能,让你从此摆脱发可编辑器卡得死,进入流畅干净编辑界面新时代。 下面是具体步骤: 首先,你要知道eWebEditor是一个什么工具。 eWebEditor是由国
    DedeCMS编辑器fck更换成eWebEditor编辑器具体步骤
  • 允许 WordPress 上传任意文件的方法
    此时如果上传一个不在预定义编程客栈的安全扩展名列表,如.lrc,会报kAtKhHRl错: F编程客栈ile type does not meet security guidelines. Try another. 解决此问题有两方法: 在
    允许 WordPress 上传任意文件的方法
  • dedecms 软件下载模块中添加下载方式为迅雷下载联盟代码
    修改 /plus/download.php 文件 www.cppcns.com查找
    dedecms 软件下载模块中添加下载方式为迅雷下载联盟代码
  • dedecms网站tag标签全部静态化的解决方法
    更改tags.php文件在根目录 找到$tag = FilterSearch(urldecode($tag)); 替换为:$tag = urldecode($tag); 更改文件arc.taglist.class.php文件文件所在的路径是
    dedecms网站tag标签全部静态化的解决方法
  • 帝国CMS远程保存图片的方法
    本文实例讲述了帝国cms远程保存图片的方法。分享给大家供大家参考。 具体实现方法如下:复制代码代码如下:
    帝国CMS远程保存图片的方法

目录