[Home] [By Thread] [By Date] [Recent Entries]
On Nov 16, 2004, at 12:02 PM, Bruce D'Arcus wrote:
Can the former be made faster? OK, we got it working so the stylesheets grab the entire collection of bibliographic records at once (sort of a PITA with the url escaping). With a bug fixed in eXist, it seems to be much faster than the earlier approach. Does anyone have any feedback on if there is a better, more flexible, way to code this? I'd like to make it easy for people to switch to different storage options (flat files and other sorts of url-queries in particular), probably even with a parameter option. <xsl:template match="db:bibliography" mode="create-bibcollection"> <xsl:variable name="citekeys"> <xsl:text>(</xsl:text> <xsl:for-each select="distinct-values(key('citekey', 'all'))"> <xsl:if test="position() > 1">,%20</xsl:if> <xsl:text>'</xsl:text> <xsl:value-of select="."/> <xsl:text>'</xsl:text> </xsl:for-each> <xsl:text>)</xsl:text> </xsl:variable> <!--+ ============================================================== | bibrecord variable identifies where to locate the bib records; in | this case, we access them via http from an eXist XML DB +--> <xsl:variable name="bibrecord" select='doc(concat("http://localhost:8080/exist/servlet/db/biblio?", "_query=declare%20namespace%20mods=%22http://www.loc.gov/mods/v3%22;", "%20for%20$citekey%20in%20", $citekeys, "%20return%20/mods:modsCollection/mods:mods[@ID=$citekey]"))' /> <bibliography> <modsCollection xmlns="http://www.loc.gov/mods/v3"> <xsl:copy-of select="$bibrecord/exist:result/mods:mods" /> </modsCollection> </bibliography> </xsl:template> Bruce
|

Cart



