Попробуйте этот XPath, который должен вернуть все соответствующие элементы ptxt .
stream/Services/ServicesSub
[title[text() = 'Parameter Set']]/table/tgroup/thead/row/entry/ptxt
Например, с учетом следующего XSLT
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/">
<xsl:apply-templates select="stream/Services/ServicesSub[title[text() = 'Parameter Set']]/table/tgroup/thead/row/entry/ptxt"/>
</xsl:template>
<xsl:template match="ptxt">
<value>
<xsl:value-of select="." />
</value>
</xsl:template>
</xsl:stylesheet>
При применении к вашему входному XML выдает следующий вывод
<value>Price less</value>
<value>Price more</value>
<value>Open Price</value>
Обратите внимание, что вы не упомянули о том, есть ли у вас повторяющиеся значения, и как их следует обрабатывать. Вам нужно прочитать о группировке (Muenchian Grouping в XSLT 1.0), если у вас есть дубликаты и вы хотите, чтобы они игнорировались.