该脚本负责把XML格式的读者记录转换为HTML的字符串。用于为流通前端服务的,负责创建册信息HTML格式的API中。
脚本程序通过继承宿主的ItemConverter类实现具体功能。
public class ItemConverter
{
public LibraryApplication App = null;
public ItemConverter()
{
}
public virtual void Begin(object sender,
ItemConverterEventArgs e)
{
}
public virtual void Item(object sender,
ItemConverterEventArgs e)
{
}
public virtual void End(object sender,
ItemConverterEventArgs e)
{
}
public static string LocalTime(string strRfc1123Time)
public static string LocalDate(string strRfc1123Time)
}
其中ItemConverterEventArgs类的定义如下:
public class ItemConverterEventArgs : EventArgs
{
public string Xml = "";
public int Index = -1;
public int Count = 0;
public string ActiveBarcode = "";
public string ResultString = "";
public Control ParentControl = null;
}
注: 在itemxml2html.cs中,方法Begin()和End()不起作用,只有Item()起作用。
itemxml2html.cs样例如下:
using System;
using System.Xml;
using DigitalPlatform.LibraryServer;
using DigitalPlatform.Xml;
public class MyConverter : ItemConverter
{
public override void Item(object sender, ItemConverterEventArgs e)
{
XmlDocument dom = new XmlDocument();
try {
dom.LoadXml(e.Xml);
}
catch (Exception ex)
{
e.ResultString = ex.Message;
return;
}
string strResult = "";
strResult += "册条码:" + DomUtil.GetElementText(dom.DocumentElement, "barcode") + "<br/>";
strResult += "状态:" + DomUtil.GetElementText(dom.DocumentElement, "state") + "<br/>";
strResult += "馆藏地点:" + DomUtil.GetElementText(dom.DocumentElement, "location") + "<br/>";
strResult += "价格:" + DomUtil.GetElementText(dom.DocumentElement, "price") + "<br/>";
strResult += "注释:" + DomUtil.GetElementText(dom.DocumentElement, "comment") + "<br/>";
strResult += "借者条码:" + DomUtil.GetElementText(dom.DocumentElement, "borrower") + "<br/>";
strResult += "借阅日期:" + DomUtil.GetElementText(dom.DocumentElement, "borrowDate") + "<br/>";
strResult += "借阅期限:" + DomUtil.GetElementText(dom.DocumentElement, "borrowPeriod") + "<br/>";
strResult += "从属种记录id:" + DomUtil.GetElementText(dom.DocumentElement, "parent") + "<br/>";
e.ResultString = strResult;
}
}