欢迎您来到 数字平台。 您尚未登录。[登录] [注册新用户]
当前位置: 论坛首页 / 栏目 产品与服务 / 文章 830

点击:1096

[顶层访客留言] [回复顶层(需要先登录)] [表状] [详细]
[回复留言] [回复(需要先登录)] [引用(需要先登录)]普通文章跟帖
文章id: 830
对 ISO2709 文件直接进行处理

作者: xietao


dp2Catalog 的 dp2检索窗功能增强后,可以直接将 ISO2709 文件内容导入到这个窗口,然后利用定制的 MarcQuery 脚本进行修改加工。修改后的记录内容,可以导出到另一个 ISO2709 文件,或保存到 dp2系统的数据库中。

什么是 MarcQuery? 这是数字平台创造的一种处理 MARC 数据的函数库,能非常方便地对 MARC 记录、字段、子字段进行各种变换修改。

下面将示范一个 MarcQuery 脚本文件,可以直接对 ISO2709 文件中的字段内容加拼音。

using System;
using System.Collections;
using System.Collections.Generic;
using System.Windows.Forms;
using System.IO;
using System.Text;
using System.Xml;

using dp2Catalog;

using DigitalPlatform.Marc;
using DigitalPlatform.Xml;
using DigitalPlatform.Script;

public class MyMarcQueryHost : MarcQueryHost
{
    // 新的加拼音字段配置。$9
    string PinyinCfgXml = "<root>"
    + "<item name='200' from='a' to='9' />"
    + "<item name='510' from='a' to='9' />"
    + "<item name='512' from='a' to='9' />"
    + "<item name='513' from='a' to='9' />"
    + "<item name='514' from='a' to='9' />"
    + "<item name='515' from='a' to='9' />"
    + "<item name='516' from='a' to='9' />"
    + "<item name='517' from='a' to='9' />"
    + "<item name='520' from='a' to='9' />"
    + "<item name='530' from='a' to='9' />"
    + "<item name='532' from='a' to='9' />"
    + "<item name='540' from='a' to='9' />"
     + "<item name='541' from='a' to='9' />"
    + "<item name='701' indicator='@[^A].' from='a' to='9' />"
    + "<item name='711' from='a' to='9' />"
    + "<item name='702' indicator='@[^A].' from='a' to='9' />"
    + "<item name='712' from='a' to='9' />"
    + "<item name='721' from='a' to='9' />"
    + "<item name='722' from='a' to='9' />"
    + "</root>";
        // 老的加拼音配置。$A等
    string OldPinyinCfgXml = "<root>"
    + "<item name='200' from='aefhi' to='AEFHI' />"
    + "<item name='510' from='aei' to='AEI' />"
    + "<item name='512' from='aei' to='AEI' />"
    + "<item name='513' from='aei' to='AEI' />"
    + "<item name='514' from='aei' to='AEI' />"
    + "<item name='515' from='aei' to='AEI' />"
    + "<item name='516' from='aei' to='AEI' />"
    + "<item name='517' from='aei' to='AEI' />"
    + "<item name='520' from='aei' to='AEI' />"
    + "<item name='530' from='a' to='A' />"
    + "<item name='532' from='a' to='A' />"
    + "<item name='540' from='a' to='A' />"
    + "<item name='541' from='aei' to='AEI' />"
    + "<item name='700' from='a' to='A' />"
    + "<item name='701' indicator='@[^A].' from='a' to='A' />"
    + "<item name='711' from='a' to='A' />"
    + "<item name='702' indicator='@[^A].' from='a' to='A' />"
    + "<item name='712' from='a' to='A' />"
    + "<item name='720' from='a' to='A' />"
    + "<item name='721' from='a' to='A' />"
    + "<item name='722' from='a' to='A' />"
    + "</root>";

 public override void OnRecord(object sender, StatisEventArgs e)
 {
                this.MainForm.RemovePinyin(
                        this.MarcRecord,
                        this.OldPinyinCfgXml);
                 this.MainForm.RemovePinyin(
                        this.MarcRecord,
                        this.PinyinCfgXml);
 
                this.MainForm.AddPinyin(
                        this.MarcRecord,
                        this.PinyinCfgXml,
                        PinyinStyle.None);
  this.Changed = true;

 }
}



发表时间: 2013-10-16 21:19:54
最后修改时间: 2013-10-16 21:45:18



  • 普通文章 dp2Catalog应用案例集锦 xietao 2011-08-23 10:36:41[点击:25713]
  • 普通文章 案例一:广东省文献编目中心,DTLP协议 xietao 2011-08-23 10:45:22 (ID:672) [点击:1234]
  • 普通文章 案例二:广东省文献编目中心,Z39.50协议 xietao 2011-09-09 18:36:29 (ID:674) [点击:1665]
  • 普通文章 对 ISO2709 文件直接进行处理 xietao 2013-10-16 21:19:54 (ID:830) [点击:1096]
  •  

    在线用户
    (无) 
    当前栏目在线用户数 0, 总在线用户数 0