前言 寫了兩年多的博客了,我想整理我的博客,問題是,得一個個打開,之後複製粘貼,嫌這樣太麻煩,於是便找到了博客園的備份功能。 但是這個備份功能下載下來的只是一個xml文件,我想把每一篇博文都轉為一個md文件,於是便有了這個Java小工具。 工具下載 "BlogBackupTool" 使用說明 從博客 ...
前言
寫了兩年多的博客了,我想整理我的博客,問題是,得一個個打開,之後複製粘貼,嫌這樣太麻煩,於是便找到了博客園的備份功能。
但是這個備份功能下載下來的只是一個xml文件,我想把每一篇博文都轉為一個md文件,於是便有了這個Java小工具。
工具下載
使用說明
從博客園上下載備份的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格式,這個百度一下就有工具了,不過還得慢慢整理一下,格式轉換過來不一定符合排版,我們得手動地去排個版。