Hi David, Below is the code to list all the key values pairs. Please let me know if you have any questions.
xquery version "1.0-ml"; let $items := map:map() let $_ := map:put($items, "Car", "$5,300") let $_ := map:put($items, "Boat", "$23,740") let $params := map:map() let $_ := map:put($params, "title", "Items sold") let $_ := map:put($params, "items", $items) let $xsl := <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:map="http://marklogic.com/xdmp/map" version="2.0"> <xsl:param name="title"/> <xsl:param name="items" as="map:map"/> <xsl:template match="/"> <Report> <title><xsl:value-of select="$title" /></title> <xsl:for-each select="map:keys($items)"> <item> <Name> <xsl:value-of select="."/> </Name> <Value> <xsl:value-of select="map:get($items, .)"/> </Value> </item> </xsl:for-each> </Report> </xsl:template> </xsl:stylesheet> return xdmp:xslt-eval($xsl, document { <foo></foo> }, $params) Thanks BK On Sun, Dec 27, 2015 at 6:08 PM, David Strickland <[email protected]> wrote: > I'm new to XQuery/XPath/XSLT and MarkLogic, so it's totally possible that > I'm missing something basic :) > > I would like to pass in a set of name/value pairs (i.e. a map) as a single > named parameter in an XSLT transformation. There could be zero or more > name/value pairs. Something similar to the following (XQuery comments would > need to be replaced) ... > > <snip> > xquery version "1.0-ml"; > > let $items := map:map() > let $_ := map:put($items, "Car", "$5,300") > let $_ := map:put($items, "Boat", "$23,740") > > let $params := map:map() > let $_ := map:put($params, "title", "Items sold") > let $_ := map:put($params, "items", $items) > > let $xsl := <xsl:stylesheet xmlns:xsl=" > http://www.w3.org/1999/XSL/Transform" > xmlns:map="http://marklogic.com/xdmp/map" > version="2.0"> > <xsl:param name="title"/> > <xsl:param name="items" as="map:map"/> > <xsl:template match="/"> > <Report> > <title><xsl:value-of select="$title" /></title> > (: for each entry in $items :) > <Item> > <Name>(: entry key :)</Name> > <Value>(: entry value :)</Value> > </Item> > (: /////////////////////// :) > </Report> > </xsl:template> > </xsl:stylesheet> > > return > xdmp:xslt-eval($xsl, document { <foo></foo> }, $params) > </snip> > > Looking through the mailing list archive I see that a similar question was > asked: http://markmail.org/message/d6lj35jvtunnxdmt > > Someone replied in the thread saying that "You could pass a map as the > value of any variable", but doesn't give the syntax. > > Any guidance would be much appreciated. > -David > > _______________________________________________ > General mailing list > [email protected] > Manage your subscription at: > http://developer.marklogic.com/mailman/listinfo/general > >
_______________________________________________ General mailing list [email protected] Manage your subscription at: http://developer.marklogic.com/mailman/listinfo/general
