Вы не можете создавать и оценивать динамические выражения XPath. И 99,9% времени вам не нужно. Следствие: если вы чувствуете необходимость динамически оценивать XPath, вы, скорее всего, делаете что-то не так.
Объявите ваш $pGroup
параметр:
<xsl:param name="pGroup" select="''" />
… создайте шаблон для вашего элемента документа (<publication>
):
<xsl:template match="publication">
<body>
<!-- select only elements with the right name here -->
<xsl:apply-templates select="*[name() = $pGroup]" />
</body>
</xsl:template>
… и один для произвольных элементов, которые содержат <contentItem>
элементов:
<xsl:template match="*[contentItem]">
<ul>
<xsl:apply-templates select="contentItem" />
</ul>
</xsl:template>
… и один для <contentItem>
самих элементов:
<xsl:template match="contentItem">
<li>
<xsl:value-of select="content" />
</ul>
</xsl:template>
Готово.