zoukankan      html  css  js  c++  java
  • stars-one的原创工具——博客园备份工具

    前言

    写了两年多的博客了,我想整理我的博客,问题是,得一个个打开,之后复制粘贴,嫌这样太麻烦,于是便找到了博客园的备份功能。

    但是这个备份功能下载下来的只是一个xml文件,我想把每一篇博文都转为一个md文件,于是便有了这个Java小工具。

    工具下载

    GitHub下载(似乎需要翻墙,不然下载速度很慢)

    4.0版本下载

    修复了标签关键字不能带空格小bug

    新增加目录导航追加功能

    界面预览:

    使用说明

    从博客园上下载备份的xml文件 将本项目下载,打开run.bat,输入前面下载的xml文件的地址,即会在xml文件的同目录生成一个博客园的文件夹,里面存放MD文件和Html文件

    程序讲解

    涉及知识

    1. IO流
    2. xml解析

    xml文件分析

    从博客园下载的xml备份文件,格式大概是这样的

    <channel>
    	<title></title>
    	<link></link>
    	<description<</description>
    	<language></language>
    	<lastBuildDate></lastBuildDate>
    	<pubDate></pubDate>
    	<ttl></ttl>
    	<item></item>
    	<item></item>
    	...
    </channel>
    

    其中的item就是我们博客中每一篇博文

    item结构

    <item>
    	<title></title>
    	<link></link>
    	<dc:creator></dc:creator>
    	<author></author>
    	<pubDate></pubDate>
    	<guid></guid>
    	<description></description>
    <item>
    

    item结点之下还有子结点
    title是我们的博文标题

    link则是我们博文对应的链接

    description则是我们博客的内容

    	NodeList itemLists = document.getElementsByTagName("item");//获得所有的item结点
    	for (int i = 0; i < itemLists.getLength(); i++) {
    		NodeList list = itemLists.item(i).getChildNodes();//获得item结点之下的全部结点,有7个,下标从0开始
    		String title = list.item(0).getTextContent();//第一个结点内容是标题
    		String link = list.item(1).getTextContent();//第二个结点内容是链接
    		String description = list.item(6).getTextContent();
    		fileWrite(title,link,description);
    	}
    

    PS:这里需要注意到是,description里面获取的内容我们查看的时候发现是下面这样的代码

    这个CDATA其实是个xml的标准标签,表明这里面的内容都是文本(上面的也就是测试和句号才是内容,解析的时候会忽略掉两个中括号)

    区分md文件和html文件

    如果是md文件,开头不可能出现<这个符号,如果是html文件,因为要使用到各种标签,p,h,div等标签,肯定开头是有<这个符号的

    html文件转md文件

    如果想不想要html文件,想要md文件的话,就得手动去整理格式,可以先使用在线的工具将html文件转为md格式,这个百度一下就有工具了,不过还得慢慢整理一下,格式转换过来不一定符合排版,我们得手动地去排个版。

  • 相关阅读:
    序列化注意事项
    HTML5的新结构标签
    MVC模型
    CSS选择器权重计算规则
    HTML常用布局
    盒模型
    Spring Security 学习笔记-session并发控制
    java实例之随机点名
    java之方法重载
    java之方法
  • 原文地址:https://www.cnblogs.com/stars-one/p/10289290.html
Copyright © 2011-2022 走看看