Как указывал Энтони, я думаю, что вы хотите использовать параметр со своей таблицей стилей, чтобы вы могли передать значение для сопоставления.
Используя вашу таблицу стилей, я добавил параметр "author", который можно передать в любое значение.
<?xml version='1.0'?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:param name="author"/>
<xsl:output method="html"
omit-xml-declaration="yes"/>
<xsl:template match="/">
<html>
<head>
<title>books example</title>
</head>
<body>
<xsl:apply-templates select="//book"/>
</body>
</html>
</xsl:template>
<xsl:template match="book">
<xsl:if test="contains(author, $author)">
<DIV>
<I><xsl:value-of select="title"/></I> by
<J><xsl:value-of select="author"/></J> genre
<B><xsl:value-of select="book_genre"/></B>
</DIV>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
Не уверен, как вы вызываете свои таблицы стилей, но передача параметра будет выглядеть примерно так:
xslProc.addParameter("author", strName);