Попробуйте это:
/module/component/section[ptemplateId/@root='1.23']//observation
Подставляя нужное значение корневого ptemplateId / @ вместо 1.23, конечно. Это должно охватывать вложенные наблюдения, если они происходят где-либо как дочерние элементы раздела, содержащего этот ptemplateId.
Вы можете попробовать это в моем онлайн-тестере xpath, здесь .
Это у вас работает?
Редактировать: Вы также можете рассмотреть этот вариант для размещения в <xsl:template match="..." />
.
<xsl:template match="observation[ancestor::section/ptemplateId/@root = '1.23']"/>