This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

XPATH as parameter


Hi,

I have a collection of xmls with the following structure:

<?xml version="1.0" encoding="UTF-8"?>
<record>
<name>Dan</name>
<city>TM</city>
</record>

and a index.xml file with the URIs of all the record files in my collection:

<?xml version="1.0" encoding="UTF-8"?>
<index>
<record ref="r1.xml"/>
<record ref="r2.xml"/>
<record ref="r3.xml"/>
</index>

I want to make a search on my collection of documents based on an
xpath. The xpath should be a parameter passed to a search.xsl file. The problem is
that I don't know how to apply an xpath stored as a parameter variable. I have tried like this

<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; version="1.0">
<xsl:output method="xml" indent="yes"/>
<xsl:param name="xpath">/record/name[contains(../city, 'TM')]</xsl:param>
<xsl:template match="/index">
<resultset>
<xsl:apply-templates select="record"/>
</resultset>
</xsl:template>
<xsl:template match="record"> <xsl:for-each select="document(@ref)">
<result>
<xsl:value-of select="$xpath"/>
</result>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>

but of course it's not working. Any idea how this can be done?


Thanks.


XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]