上一篇发了做好的程序,在本地测试可用,不知道大家的环境是否都可以正常运行。这都是次要问题,本身程序也没什么难得,完了我把源码发上来大家下回去完全可以根据自身需要修改。这里就介绍一下在制作过程中遇到的知识点。
首先,我们既然要把Chrome的书签导入IE中,那就要分析Chrome书签文件和IE收藏夹文件的格式,需要进行什么样的转换才可以保证互通性。大家熟悉IE的收藏夹,是文件层级的,不同的链接和分类用文件和文件夹来表示。具体链接文件后缀名为.url,双击后直接导航到该链接页面,用文本编辑器打开,里面的内容很想INI文件的节点和键值。最常用的就是[InternetShortcut]和URL。[InternetShortcut]表示这是个网页快捷文件,URL等号后面的网址就是该链接的地址。当然还有其他一些节点和键名,如图标序号,图标地址等,这些不是必须的。
Chrome书签文件Bookmarks则完全不同,它就一个单一的文件,里面的内容类似XML,书签中的分类也都表现在这个文件中,用不同的关键字区分开而已。下面是一段Chrome书签的代码示例:
1: {
2: "roots": {
3: "bookmark_bar": {
4: "children": [ {
5: "children": [ {
6: "date_added": "12865393608170580",
7: "name": "ClearType Tuner Step 1 Turn on Windows XP ClearType",
8: "type": "url",
9: "url": "http://www.microsoft.com/typography/cleartype/tuner/Step1.aspx "
10: } ],
11: "date_added": "12865394044285991",
12: "date_modified": "0",
13: "name": "\u5730\u56FE\u7EBF\u8DEF",
14: "type": "folder"
15: }
其中roots表示书签的根节点,bookmark_bar表示Chrome中的“书签栏”,children表示具有子栏目的书签集合,在集合符号[]中就是该栏目下的书签和子栏目,而在这这后的一个type:folder的部分是这个栏目的信息,如创建时间,名字等。分析文件结构会发现:
date_added表示书签的创建时间
name代表书签或栏目的名称,为Unicode编码格式
type表示该项是书签还是栏目,url表示书签,folder表示栏目
这样我们就能找到对应关系了,将该文件中的特定符号和关键字替换为XML符号和标记,将Bookmarks转换为XML格式最为方便我们导出书签。因此我们在这里规定以下的符号对应关系:
roots——<bookmark>
bookmark_bar——取消
children——bookmarkchild
date_added——<date_added>
name——<name>
type——<type>
url——<url>
这样转换后的XML基本格式如下:
1: <?xml version="1.0" encoding="GBK" ?>
2: <bookmark>
3: <bookmarkchild>
4: <bookmarkchild>
5: <date_added>12865393608170580</date_added>
6: <name>ClearType Tuner Step 1 Turn on Windows XP ClearType</name>
7: <type>url</type>
8: <url>http://www.microsoft.com/typography/cleartype/tuner/Step1.aspx</url>
好了,这篇就将文件格式的转化分析到这里。下篇继续如何转换和最终导出书签的操作。