如何使用SyndicationFeed从DSPACE检索数据
背景: 我们目前有一个可以从EPRINTS存储库检索数据的现有应用程序,但其中一个新客户端正在使用DSPACE存储库 据我所知,浏览时EPRINTs的查询URL提供了一种XML类型,例如: 大学eprints域?\u action\u export=1&output=RSS2&exp=0%7c1%7c日期%2F创建者名称%2ftitle%7Crchive%7c-%7cq%3a\u全文\u%2F摘要%2F创建者名称%2fdate%2F文档%2feditors\u名称%2ftitle%3ALL%3aIN%3MUSIC%7c-%7ceprint状态%3AERUT状态%3ANY%3ANY%3aEQ%3aEQ存档%7CMETATA可见性%3ANY%3aEQ元数据可见性%3ANY%3aEQ显示 现在,我想从DSPACE存储库中检索数据。如何创建查询URL? 这是我正在使用的现有代码:如何使用SyndicationFeed从DSPACE检索数据,dspace,Dspace,背景: 我们目前有一个可以从EPRINTS存储库检索数据的现有应用程序,但其中一个新客户端正在使用DSPACE存储库 据我所知,浏览时EPRINTs的查询URL提供了一种XML类型,例如: 大学eprints域?\u action\u export=1&output=RSS2&exp=0%7c1%7c日期%2F创建者名称%2ftitle%7Crchive%7c-%7cq%3a\u全文\u%2F摘要%2F创建者名称%2fdate%2F文档%2feditors\u名称%2ftitle%3ALL%3a
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();
}
如果您在DSpace站点上查看页面源代码,RSS和opensearch 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" />
如果你能举例说明你想检索的每个项目的信息,可能会帮助你得到好的答案。我找到了这个问题的解决方案。DSPACE获取RSS提要格式的查询URL是应该启用“开放搜索”。URl查询示例如下: