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

批量导入XML数据到drupal系统的方法,第1张

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

本文的重点是详细介绍将XML数据批量导入drupal系统的方法。重点是按照一个XML文档导入类来完成这个功能,这是一个非常好用的方法,一定要参考。

本文描述了将XML数据批量导入drupal系统的方法。分享给大家参考。实际的完成方式如下:

如果想把其他网站的数据批量导入drupal系统,可以选择上面的代码。必要条件是你需要把原始URL的数据生成为XML文件格式!

有很多生成XML的特殊工具,包括一个名为xml.class.php的类,可以使用,也可以自己编写PHP代码来完成。

XML文档生成后,根据该模块,立即提交,即可导入drupal系统。

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

以下是该模块的部分浓缩源代码,有兴趣的朋友可以稳定测试一下这个案例。关键 *** 作代码如下:

复制代码如下:<?函数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");
如果(!$FD){
form_set_error('upload_file',t('导入失败:无法读取文件%filename。',数组('%filename'=>$file->;文件名)));
}
else{
$info=fstat($FD);
$len=$info["size"];
$text=fread($fd,$len);
fclose($FD);
Drupal_set_message(t('Loadedfile%filename。正在处理中。,数组('%filename'=>$file->;文件名)));
$form_state['values']['file']=$file;
import_XML_invoke_import($text,$form_state['values']);
}
}
else{
form_set_error('upload_file',t('Importfailed:文件未上传'));
}
}
函数parseMol($mvalues){
for($I=0;$i<计数(百万值);$I)
$mol[$mvalues[$I]["tag"]]=$mvalues[$I]["value"];
返回新的importXML($mol);
}
classimportXML{
var$tushushangpin;
var$上品代码;
var$舒明;
var$丛树明;
var$fushuconshuming;
var$Zhuzoozhe;
var$chubanzhe;
var$benbanbanci;
var$yinci;
var$丁家;
函数importXML($aa){
foreach($aaas$k=>;$v)
$this->;$k=$aa[$k];
}
}
/**
*根据从表单传递的参数
*从给定的字符串进行实际导入。
*
*@param$text
*/
函数import_XML_invoke_import(&;$text){
//解析数据:
$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);
//现在开始获取值
foreach($tagsas$key=>;$val){
if($key=="tushushangpin"){
$molranges=$val;
for($I=0;$i<计数(摩尔范围);$I=2){
$offset=$molranges[$I]1;
$len=$molranges[$I1]-$offset;
$TDB[]=parsemol(array_slice($values,$offset,$len));
}
}否则{
继续;
}
}
foreach($TDBas$value){
$node=array();
$node=newSTDclass;
$node->;type="product
$node->;状态=1;
$node->;uid=1;
$node->;title=$value->;淑明;
//$node->;body=$value->;内容体瑶;
$node->;field_product_shangpindima[0]['value']=$value->;尚品代马;
$node->;field_product_Shuming[0]['value']=$value->;淑明;//使用Ubercart
$node->;field_product_congshuming[0]['value']=$value->;丛树明;
$node->;field_product_fushuconshuming[0]['value']=$value->;伏树丛树明;
$node->;field_product_zhuzozhe[0]['value']=$value->;主宰者;
$node->;field_product_chubanzhe[0]['value']=$value->;出版者;
$node->;field_product_benbanbanci[0]['value']=$value->;本班班慈;
$node->;field_product_yinci[0]['value']=$value->;尹慈;
$node->;field_product_dingjia[0]['value']=$value->;丁家;
//if$value->;tongjifenlei不为nullthen:
if($value->;tongjifenlei){
$TJ_vid=1;
if($tid=(int)db_result(db_query('SELECTtidFROM{term_data}WHEREname="%s"ANDvid=%d',$value->;tongjifenlei,$TJ_vid))){
$TJ_tid=$tid;
}else{
//词汇ID在本例中是硬编码的
$autoterm=array(
'name'=>;$value->;tongjifenlei,//或者您希望自动术语命名为
'parent'=>;0,
'vid'=>;$tj_vid,
);
taxonomy_save_term($autoterm);
$TJ_tid=(int)db_result(db_query('SELECTMAX(tid)FROM{term_data}WHEREvid=%d',$vid));
}
$node->;分类法[$TJ_vid][$TJ_tid]=$TJ_tid;
}
node_save($node);
}
Drupal_set_message("导入成功!");
}
?>

期待以上对大家的drupal网站有所帮助。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/772108.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-03
下一篇 2022-05-03

发表评论

登录后才能评论

评论列表(0条)

保存