欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

博客园备份小工具使用加代码说明(Java小程序)

程序员文章站 2022-07-02 17:01:48
前言 写了两年多的博客了,我想整理我的博客,问题是,得一个个打开,之后复制粘贴,嫌这样太麻烦,于是便找到了博客园的备份功能。 但是这个备份功能下载下来的只是一个xml文件,我想把每一篇博文都转为一个md文件,于是便有了这个Java小工具。 工具下载 "BlogBackupTool" 使用说明 从博客 ......

前言

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

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

工具下载

blogbackuptool

使用说明

从博客园上下载备份的xml文件 将本项目下载,打开run.bat,输入前面下载的xml文件的地址,即会在xml文件的同目录生成一个博客园的文件夹,里面存放md文件和html文件
博客园备份小工具使用加代码说明(Java小程序)

程序讲解

涉及知识

  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格式,这个百度一下就有工具了,不过还得慢慢整理一下,格式转换过来不一定符合排版,我们得手动地去排个版。