stars-one的原创工具——博客园备份工具
2023-02-18 16:39:52 时间
前言
写了两年多的博客了,我想整理我的博客,问题是,得一个个打开,之后复制粘贴,嫌这样太麻烦,于是便找到了博客园的备份功能。
但是这个备份功能下载下来的只是一个xml文件,我想把每一篇博文都转为一个md文件,于是便有了这个Java小工具。
工具下载
修复了标签关键字不能带空格小bug
新增加目录导航追加功能
界面预览:
使用说明
从博客园上下载备份的xml文件 将本项目下载,打开run.bat,输入前面下载的xml文件的地址,即会在xml文件的同目录生成一个博客园的文件夹,里面存放MD文件和Html文件
程序讲解
涉及知识
- IO流
- 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格式,这个百度一下就有工具了,不过还得慢慢整理一下,格式转换过来不一定符合排版,我们得手动地去排个版。
相关文章
- 三维组态可视化解决方案
- 油田系统三维布局可视化解决方案
- 君子生非异也,善假于物也
- 机器人制证系统大屏可视化
- C# WPF 嵌入网页版WebGL油田三维可视化监控
- OffscreenCanvas-离屏canvas使用说明
- 去掉图片黑背景输出为透明背景
- 高清屏下canvas重置尺寸引发的问题
- WebGL2系列之采样器对象
- WebGL2系列之多采样渲染缓冲对象
- FireFox下Canvas使用图像合成绘制SVG的Bug
- WebGL 着色器偏导数dFdx和dFdy介绍
- 绕圆弧动画的向量解决方式
- 程序员进阶之道(一)
- 春节过年见闻录
- canvas反向裁剪技巧
- canvas 绘制双线技巧
- 如何优雅的构建排序公式
- canvas高效绘制10万图形,你必须知道的高效绘制技巧
- WebGL2系列之实例数组(Instanced Arrays)