Hi, Personally, in XSLT, I'd try to be less clever...
<xsl:template match="/"> <IMAGES> <xsl:apply-templates select="/response/result/doc"/> </IMAGES> </xsl:template> <xsl:template match="doc"> <myID><xsl:value-of select="str[@name='id']"/></myID> <thumbnail><xsl:value-of select="str[@name='thumbnail']"/></thumbnail> ... </xsl:template> Dunno if that helps. Upayavira On Wed, Jul 22, 2015, at 11:17 AM, Sreekant Sreedharan wrote: > Hi, > I am using the SOLR XSLT response writer. My challenge is to convert > some > fields in the schema from one value to another. I am using a map to do > this. > Here's the sample XSLT file > > <xsl:stylesheet version="1.0" > xmlns:xsl="http://www.w3.org/1999/XSL/Transform" > xmlns:my="my:my"> > <xsl:output omit-xml-declaration="yes" indent="yes"/> > <xsl:strip-space elements="*"/> > > <my:map> > <map> > <item from="id" to="NewID" /> > <item from="ar" to="NewAR" /> > </map> > </my:map> > > <xsl:variable name="vMap" select="document('')/*/my:map/*/*"/> > > <xsl:template match='/'> > <IMAGES> > <xsl:value-of select="$vMap[@from = 'id']/@to" /> > </IMAGES> > </xsl:template> > > </xsl:stylesheet> > > > > Here's what the JSON response looks like > > > { > "responseHeader":{ > "status":0, > "QTime":0, > "params":{ > "q":"car", > "indent":"true", > "fl":"id", > "rows":"1", > "wt":"json", > "tr":"alamy.xsl"}}, > "response":{"numFound":202,"start":0,"docs":[ > { > "id":"589587B2B1CA4C4683FC106967E7C326"}] > }} > > > As you can see, I have an id field that I need to transform in to NewID > as > per the stylesheet (the response will be in XML, the JSON is just a > sample > document). > > However, when I make the request, I get the following SOLR error. > > {msg=XSLT transformation error,trace=java.io.IOException: XSLT > transformation error > at > org.apache.solr.response.XSLTResponseWriter.write(XSLTResponseWriter.java:111) > at > org.apache.solr.servlet.SolrDispatchFilter.writeResponse(SolrDispatchFilter.java:765) > at > org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:426) > at > org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:207) > at > org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1419) > at > org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:455) > at > org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137) > at > org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:557) > at > org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231) > at > org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1075) > at > org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:384) > .... > > > What could I be doing wrong? And how do I correct it? > > Regards, > Sreekant > > > > > > > -- > View this message in context: > http://lucene.472066.n3.nabble.com/XSLT-with-maps-tp4218518.html > Sent from the Solr - User mailing list archive at Nabble.com.