Chrome书签导入IE或Maxthon的程序(二)

上一篇发了做好的程序,在本地测试可用,不知道大家的环境是否都可以正常运行。这都是次要问题,本身程序也没什么难得,完了我把源码发上来大家下回去完全可以根据自身需要修改。这里就介绍一下在制作过程中遇到的知识点。

首先,我们既然要把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>

好了,这篇就将文件格式的转化分析到这里。下篇继续如何转换和最终导出书签的操作。

你可能感兴趣的:(chrome)