David Cook
d3c128af9d
This patch adds an optional hashref argument to the XSLT_Handler transform() method. It allows you to send key => value pairs parameters to the XML::LibXSLT object, which you can reference in a XSLT via <xsl:param name="XXX" />. The parameter value is evaluated as an XPath query, so you can only pass quoted strings (i.e. "'test'") or numbers. Otherwise, the XSLT engine will interpret it as a Xpath query and will run it on the XML that you're transforming. The most common use case is sending strings to a XSLT. In my case, this is an OAI-PMH identifier that comes in a OAI response but not the actual metadata. See the following link from the official POD: http://search.cpan.org/~shlomif/XML-LibXSLT-1.92/LibXSLT.pm#Parameters _TEST PLAN_ 1) Run "perl t/db_dependent/XSLT_Handler.t". If all tests pass, you should be free to sign off. Feel free to inspect the last test in XSLT_Handler.t and the XSL in test04.xsl to see how it works. If you really want to be thorough, you could write your own test cases using mine as an example. Alternatively, you could go into C4::XSLT, and try to pass a value to a parameter in the search results or the detail page, but that might be a bit over the top. It's a pretty simple patch. Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
18 lines
470 B
XML
18 lines
470 B
XML
<xsl:stylesheet version="1.0"
|
|
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
|
xmlns:marc="http://www.loc.gov/MARC21/slim"
|
|
>
|
|
<xsl:output method="xml" encoding="UTF-8" version="1.0" indent="yes"/>
|
|
<xsl:param name="injected_variable" />
|
|
|
|
<xsl:template match="/">
|
|
<xsl:apply-templates/>
|
|
</xsl:template>
|
|
|
|
<xsl:template match="node()">
|
|
<xsl:copy>
|
|
<xsl:value-of select="$injected_variable"/>
|
|
</xsl:copy>
|
|
</xsl:template>
|
|
|
|
</xsl:stylesheet>
|