⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 opacdisp.c

📁 harvest是一个下载html网页得机器人
💻 C
字号:
/* * Copyright (c) 2003, Index Data. * See the file LICENSE for details. * * $Id: opacdisp.c,v 1.4 2003/07/30 10:00:27 adam Exp $ */#include <stdio.h>#include <string.h>#include <stdlib.h>#include <ctype.h>#include <yaz/proto.h>static void opac_element_str(WRBUF wrbuf, int l, const char *elem,			     const char *data){    if (data)    {	while (--l >= 0)	    wrbuf_puts(wrbuf, " ");	wrbuf_puts(wrbuf, "<");	wrbuf_puts(wrbuf, elem);	wrbuf_puts(wrbuf, ">");	wrbuf_xmlputs(wrbuf, data);	wrbuf_puts(wrbuf, "</");	wrbuf_puts(wrbuf, elem);	wrbuf_puts(wrbuf, ">\n");    }}static void opac_element_bool(WRBUF wrbuf, int l, const char *elem, int *data){    if (data)    {	while (--l >= 0)	    wrbuf_puts(wrbuf, " ");	wrbuf_puts(wrbuf, "<");	wrbuf_puts(wrbuf, elem);	if (*data)            wrbuf_puts(wrbuf, " value=\"1\"");	else            wrbuf_puts(wrbuf, " value=\"0\"");	wrbuf_puts(wrbuf, "/>\n");    }}void yaz_display_OPAC(WRBUF wrbuf, Z_OPACRecord *r, int flags){    int i;    wrbuf_puts(wrbuf, "<holdings>\n");    for (i = 0; i < r->num_holdingsData; i++)    {	Z_HoldingsRecord *h = r->holdingsData[i];	wrbuf_puts(wrbuf, " <holding>\n");	if (h->which == Z_HoldingsRecord_marcHoldingsRecord)	{	    wrbuf_puts (wrbuf, "  <marc/>\n");	/*  h->u.marcHoldingsRecord) */	}	else if (h->which == Z_HoldingsRecord_holdingsAndCirc)	{	    int j;	    	    Z_HoldingsAndCircData *d = h->u.holdingsAndCirc;		    opac_element_str(wrbuf, 2, "typeOfRecord", d->typeOfRecord);	    opac_element_str(wrbuf, 2, "encodingLevel", d->encodingLevel);	    opac_element_str(wrbuf, 2, "format", d->format);	    opac_element_str(wrbuf, 2, "receiptAcqStatus", d->receiptAcqStatus);	    opac_element_str (wrbuf, 2, "generalRetention", d->generalRetention);	    opac_element_str (wrbuf, 2, "completeness", d->completeness);	    opac_element_str (wrbuf, 2, "dateOfReport", d->dateOfReport);	    opac_element_str (wrbuf, 2, "nucCode", d->nucCode);	    opac_element_str (wrbuf, 2, "localLocation", d->localLocation);	    opac_element_str (wrbuf, 2, "shelvingLocation", d->shelvingLocation);	    opac_element_str (wrbuf, 2, "callNumber", d->callNumber);	    opac_element_str (wrbuf, 2, "copyNumber", d->copyNumber);	    opac_element_str (wrbuf, 2, "publicNote", d->publicNote);	    opac_element_str (wrbuf, 2, "reproductionNote", d->reproductionNote);	    opac_element_str (wrbuf, 2, "termsUseRepro", d->termsUseRepro);	    opac_element_str (wrbuf, 2, "enumAndChron", d->enumAndChron);	    if (d->num_volumes)	    {		wrbuf_puts (wrbuf, "  <volumes>\n");		for (j = 0; j<d->num_volumes; j++)		{		    wrbuf_puts (wrbuf, "   <volume>\n");		    opac_element_str (wrbuf, 4, "enumeration",				      d->volumes[j]->enumeration);		    opac_element_str (wrbuf, 4, "chronology",				      d->volumes[j]->chronology);		    opac_element_str (wrbuf, 4, "enumAndChron",				      d->volumes[j]->enumAndChron);		    wrbuf_puts (wrbuf, "   </volume>\n");		}		wrbuf_puts (wrbuf, "  </volumes>\n");	    }	    if (d->num_circulationData)	    {		wrbuf_puts (wrbuf, "  <circulations>\n");		for (j = 0; j<d->num_circulationData; j++)		{		    wrbuf_puts (wrbuf,"   <circulation>\n");		    opac_element_bool (wrbuf, 4, "availableNow",				       d->circulationData[j]->availableNow);		    opac_element_str (wrbuf, 4, "availabiltyDate",				      d->circulationData[j]->availablityDate);		    opac_element_str (wrbuf, 4, "availableThru",				      d->circulationData[j]->availableThru);		    opac_element_str (wrbuf, 4, "restrictions",				      d->circulationData[j]->restrictions);		    opac_element_str (wrbuf, 4, "itemId",				      d->circulationData[j]->itemId);		    opac_element_bool (wrbuf, 4, "renewable",				       d->circulationData[j]->renewable);		    opac_element_bool (wrbuf, 4, "onHold",				       d->circulationData[j]->onHold);		    opac_element_str (wrbuf, 4, "enumAndChron",				      d->circulationData[j]->enumAndChron);		    opac_element_str (wrbuf, 4, "midspine",				      d->circulationData[j]->midspine);		    opac_element_str (wrbuf, 4, "temporaryLocation",				      d->circulationData[j]->temporaryLocation);		    wrbuf_puts (wrbuf, "   </circulation>\n");		}		wrbuf_puts (wrbuf, "  </circulations>\n");	    }	}	wrbuf_puts(wrbuf, " </holding>\n");    }    wrbuf_puts(wrbuf, "</holdings>\n");}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -