科普:如何运用OPML格式向阅读器导入RSS列表
本文摘自 勾三股四 更早时期的 不老歌 博客。
最近做RSS相关内容的原因,特意去opml.org学习了一下大名鼎鼎的OPML(Outline Processor Markup Language)文件格式。
OPML格式是基于xml的,首先,在根结点下有一个head结点和一个body结点:
<?xml version="1.0" encoding="UTF-8"?>
<opml>
<head>
<title>xxx</title>
...
</head>
<body>
<outline ... />
...
</body>
</opml>head结点中的内容和具体的数据关系不大,大概有下面这么几个(最显眼的莫过于title了)
<head>
<title>xxx</title>
<dateCreated>xxx</dateCreated>
<dateModified>xxx</dateModified>
<ownerName>xxx</ownerName>
<ownerEmail>xxx</ownerEmail>
<ownerId>xxx</ownerId>
<docs>xxx</docs>
<expansionState>xxx</expansionState>
<vertScrollState>xxx</vertScrollState>
<windowTop>xxx</windowTop>
<windowBottom>xxx</windowBottom>
<windowLeft>xxx</windowLeft>
<windowRight>xxx</windowRight>
</head>body结点中全部都是outline结点,表示了RSS列表的内容和目录结构,比如:
<body>
<outline text="Folder 1" ...>
<outline type="rss" text="Title 1" xmlUrl="http://xxx.rss" ... />
</outline>
</body>这里就是opml最主要的部分了,格式对于html/xml开发者来讲应该相当熟悉了。值得一提的是,几个关键的属性text、title、xmlUrl、htmlUrl、type、description中,title/description/htmlUrl都是可选的,如果text/title同时存在,会以text为准,而不是更常见的title,另外xmlUrl和htmlUrl分别表示这个outline的RSS地址和网站地址,而不是所有的RSS都有htmlUrl的。另外RSS的type必须是"rss"。
其实OPML可以做很多事情——远不止导入导出RSS这种,感兴趣的童鞋可以移步到opml.org。