如何使用SyndicationFeed从DSPACE检索数据

时间:2015-09-29 04:59:51

标签: dspace

背景:

我们目前有一个现有的应用程序可以从EPRINTS存储库中检索数据,但其中一个新客户端正在使用DSPACE存储库。

根据我的注意,浏览时EPRINT的查询URL提供了XML类型,例如:

大学eprints域名?_action_export = 1& output = RSS2& exp = 0%7c1%7c-date%2fcreators_name%2ftitle%7carchive%7c-%7cq%3a_fulltext_%2fabstract%2fcreators_name%2fdate%2fdocuments%2feditors_name%2ftitle% 3aALL%3aIN%3amusic%7C-%7ceprint_status%3aeprint_status%3aANY%3aEQ%3aarchive%7cmetadata_visibility%3ametadata_visibility%3aANY%3aEQ%3ashow

现在,我想从DSPACE存储库中检索数据。如何创建查询URL? 这是我正在使用的现有代码:

            var client = new HttpClient();
            var stream = await client.GetStreamAsync(url);
            var XmlReaderSettings_ = new XmlReaderSettings();
            XmlReaderSettings_.XmlResolver = null;
            XmlReaderSettings_.DtdProcessing = DtdProcessing.Parse;

            using (var xr = XmlReader.Create(stream, XmlReaderSettings_))
            {
                var feed = SyndicationFeed.Load(xr);
                return feed.Items.ToList();
            }

1 个答案:

答案 0 :(得分:2)

如果您在DSpace网站上查看页面源,则RSS和开放搜索URL应该在源代码中可用。

<link type="application/rss+xml" rel="alternate" href="/feed/rss_1.0/site" />
<link type="application/rss+xml" rel="alternate" href="/feed/rss_2.0/site" />
<link type="application/atom+xml" rel="alternate" href="/feed/atom_1.0/site" />
<link type="application/opensearchdescription+xml" rel="search" href="https://siteid:443/open-search/description.xml" title="DSpace" />