// 册XML记录转换为HTML显示格式 // 编写者:谢涛 // 最后修改日期: 2009/10/17 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 += ""; strResult += ""; strResult += ""; strResult += ""; strResult += ""; strResult += ""; /* // 册条码 string strItemBarcode = DomUtil.GetElementText(dom.DocumentElement, "barcode"); strResult += ""; strResult += ""; strResult += ""; */ { // 册条码 string strItemBarcode = DomUtil.GetElementText(dom.DocumentElement, "barcode"); string strBarcodeLink = "" + strItemBarcode + ""; strResult += GetOneTR("barcode", "册条码号", strBarcodeLink); // 书目摘要 strResult += ""; strResult += ""; strResult += ""; // 状态 strResult += GetOneTR(dom.DocumentElement, "state", "状态"); // 馆藏地点 strResult += GetOneTR(dom.DocumentElement, "location", "馆藏地点"); // 册价格 strResult += GetOneTR(dom.DocumentElement, "price", "册价格"); // 出版时间 strResult += GetOneTR(dom.DocumentElement, "publishTime", "出版时间"); // 渠道 strResult += GetOneTR(dom.DocumentElement, "seller", "渠道"); // 经费来源 strResult += GetOneTR(dom.DocumentElement, "source", "经费来源"); // 索取号 strResult += GetOneTR(dom.DocumentElement, "accessNo", "索取号"); // 卷 strResult += GetOneTR(dom.DocumentElement, "volume", "卷"); // 册类型 strResult += GetOneTR(dom.DocumentElement, "bookType", "册类型"); // 登录号 strResult += GetOneTR(dom.DocumentElement, "registerNo", "登录号"); // 注释 strResult += GetOneTR(dom.DocumentElement, "comment", "注释"); // 合并注释 strResult += GetOneTR(dom.DocumentElement, "mergeComment", "合并注释"); // 批次号 strResult += GetOneTR(dom.DocumentElement, "bachNo", "批次号"); string strBorrower = DomUtil.GetElementText(dom.DocumentElement, "borrower"); // 借者条码 // 借者姓名 strResult += ""; strResult += ""; if (string.IsNullOrEmpty(strBorrower) == false) { strResult += ""; // 借者条码 string strBorrowerLink = ""; if (String.IsNullOrEmpty(strBorrower) == false) strBorrowerLink = "" + strBorrower + ""; else strBorrowerLink = " "; strResult += GetOneTR("borrower", "借者证条码号", strBorrowerLink); // 借阅日期 string strBorrowDate = DomUtil.GetElementText(dom.DocumentElement, "borrowDate"); strBorrowDate = LocalTime(strBorrowDate); strResult += GetOneTR("borrowDate", "借阅日期", strBorrowDate); // 借阅期限 string strBorrowPeriod = DomUtil.GetElementText(dom.DocumentElement, "borrowPeriod"); strBorrowPeriod = LibraryApplication.GetDisplayTimePeriodString(strBorrowPeriod); strResult += GetOneTR("borrowPeriod", "借阅期限", strBorrowPeriod); // 参考ID strResult += GetOneTR(dom.DocumentElement, "refID", "参考ID"); // 册记录路径 strResult += GetOneTR("recpath", "册记录路径", e.RecPath); strResult += "
"; strResult += "册条码"; strResult += "" + ""; strResult += strItemBarcode; strResult += ""; strResult += "
"; strResult += "书目摘要"; strResult += ""; strResult += "B:" + strItemBarcode; strResult += "
"; strResult += "借者姓名"; strResult += ""; strResult += "P:" + strBorrower; } else { strResult += ""; strResult += " "; } strResult += "
"; } // 借阅历史 XmlNodeList nodes = dom.DocumentElement.SelectNodes("borrowHistory/borrower"); if (nodes.Count > 0) { strResult += "
历史
"; strResult += "\r\n"; strResult += "\r\n"; strResult += "\r\n"; for(int i=0;i" + strBarcode + ""; // 表格内容奇数行的类名 string strOdd = ""; if (((i+1)%2)!=0) strOdd = " odd"; strResult += ""; strResult += ""; strResult += ""; strResult += ""; strResult += ""; strResult += ""; strResult += ""; strResult += ""; strResult += ""; strResult += ""; strResult += ""; strResult += "\r\n"; } strResult += "
"; XmlNode nodeHistory = dom.DocumentElement.SelectSingleNode("borrowHistory"); string strHistoryCount = ""; if (nodeHistory != null) strHistoryCount = DomUtil.GetAttr(nodeHistory, "count"); strResult += "本册共被 " + strHistoryCount + " 位读者借阅过 (下表中最多仅能显示最近100位)"; strResult += "
证条码号姓名续借次借阅日期期限借阅操作者续借注还书日期还书操作者
" + (i+1).ToString() + "" + strBarcodeLink + "P:" + strBarcode + "" + strNo + "" + LocalDate(strBorrowDate) + "" + LibraryApplication.GetDisplayTimePeriodString(strPeriod) + "" + strOperator + "" + strRenewComment.Replace(";", "
") + "
" + LocalDate(strReturnDate) + "" + strOperator + "
\r\n"; } strResult += ""; e.ResultString = strResult; } static string GetOneTR(XmlNode root, string strElementName, string strTitle) { string strValue = DomUtil.GetElementText(root, strElementName); return GetOneTR(strElementName, strTitle, strValue); } static string GetOneTR( string strElementName, string strTitle, string strValue) { string strResult = ""; strResult += ""; strResult += ""; strResult += strTitle; strResult += ""; strResult += ""; strResult += strValue; strResult += ""; strResult += "\r\n"; return strResult; } }