科普:如何运用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。