当前访客身份:游客 [ 登录 | 加入 OSCHINA ]

代码分享

当前位置:
代码分享 » Java  » 文件处理和文本解析
youthflies

将点点文章导入到wordpress

youthflies 发布于 2013年04月20日 23时, 0评/1243阅
分享到: 
收藏 +0
2
点点文章导出后是xml文件,wordpress importer导入的也是xml文件,这里将点点导出的xml文件进行重组,形成wordpress识别的xml文件,并且加入了自己的发挥,添加了视频播放器和音乐播放器。本代码运行在windows系统上(主要是一些路径的问题),需要dom4j jar包。
标签: <无>

代码片段(4) [全屏查看所有代码]

1. [文件] diandian2wordpress.zip ~ 15KB     下载(57)     [全屏预览]

2. [代码][Java]代码     跳至 [2] [全屏预览]

//这是部分代码,全部代码在那个zip文件中。
//读取点点备份文件xml
		SAXReader reader = new SAXReader();

            try
            {
	            document = reader.read(new File("diandian.xml"));
            } catch (DocumentException e)
            {
	            // TODO Auto-generated catch block
	            e.printStackTrace();
            }

			//整个xml的文档root节点,DiandianBlogBackup下有六个子节点,前三个节点没有用,后三个分别是Posts,Pages,Images
			//posts是我们的文章所在,Images是文章中的图片链接所在,pages是我们自定的页面信息
            
             imageLoad();//首先处理image
			 Element dianBackRoot = document.getRootElement();

			 Iterator iterator = dianBackRoot.elementIterator();
			 
			 //定位到Posts节点
			 for(int i=1;i<=5;i++)
				 iterator.next();
			 //Posts中的root节点
			 Element postsRoot = (Element) iterator.next();
			 Iterator postIterator = postsRoot.elementIterator(); 
			 
			  
			 //开始处理文章
			 while(postIterator.hasNext())
			 {
				  postTree.clear();
			      //postRoot就是文章post节点的根节点,它下面就是文章内容了
			      Element postRoot = (Element) postIterator.next();
			      Iterator dataIterator = postRoot.elementIterator();
			        	
			      while(dataIterator.hasNext())
			      {
			    	  Element data = (Element) dataIterator.next();
			    	  
			    	  //将数据放入HashMap中
			    	  //如果是tags标签,要处理其中的子节点,调用tagsDeal方法
			    	  
			    	  String dataName = data.getName();
			    	  if("Tags".equals(dataName))
			    	  {
			    		  tagsDeal(data);
			    	  }
			    	  if("PhotoItem".equals(dataName))
			    	  {
			    		  photoItemDeal(data);
			    	  }
			    	  postTree.put(data.getName(), data.getText());	
			      }
			      String postType = postTree.get("PostType");

			    	  if("text".equals(postType))
			    		  System.out.println(initWordpressXML.getPostCount()+". 文章:"+postTree.get("Title")+"----处理成功");
			    	  else if("photo".equals(postType))
			    		  System.out.println(initWordpressXML.getPostCount()+". 文章:"+postTree.get("Desc").replaceAll("<.+?>", "")+"----处理成功");
			    	  else if("audio".equals(postType))
			    		  System.out.println(initWordpressXML.getPostCount()+". 文章:"+postTree.get("SongName").replaceAll("<.+?>", "")+"----处理成功");
			    	  else if("video".equals(postType))
			    		  System.out.println(initWordpressXML.getPostCount()+". 文章:"+postTree.get("VideoName").replaceAll("<.+?>", "")+"----处理成功");
			    	  else if("useraudio".equals(postType))
			    	  {
			    		  errLog.add("请注意,这是一个音乐资源,是用户自己上传到点点博客,暂时无法获取,不能同步,请手动处理,文章名字:"+postTree.get("Title"));
			    		  continue;
			    	  }
			    	  else
			    		  System.out.println("+++++++++++++++++++++++++");
			    	  
			    	  DianPostText dianPostText = new DianPostText(postTree);
			    	  dianPostText.writeText2WordpressXml(initWordpressXML.getDocument(), initWordpressXML.getPostCount(), imageTree);
			    	  //wordpress postId 加1
			    	  initWordpressXML.setPostCount(initWordpressXML.getPostCount()+1);
			   

			 }
			 //将wordpress xml document写入到文件中      
			 initWordpressXML.writeXmlFile();
			 System.out.println("\n\n++++++++++++文章生成结果(yeetrack.com易踪网)+++++++++++");
			 System.out.println("成功:"+(initWordpressXML.getPostCount()-1)+"个");
			 System.out.println("失败:"+errLog.size()+"个");
			 for(int i=0;i<=errLog.size()-1;i++)
				 System.out.println(errLog.get(i));
		}

3. [图片] 运行结果.jpg    

4. [图片] 运行结果--cmd.jpg    



开源中国-程序员在线工具:Git代码托管 API文档大全(120+) JS在线编辑演示 二维码 更多»

开源从代码分享开始 分享代码
youthflies的其它代码 全部(3)...