Вот это извращение
<xsl:for-each select="document('usel://posts_blogUselCount/1/6137/6165/6179/6193///3/?p=0')/udata/page">
<xsl:value-of select="@id" />
</xsl:foreach>
<xsl:variable name='total' select="document('usel://posts_blogUselCount/1/6137/6165/6179/6193///')//total"/>
<xsl:apply-templates select="document(concat('udata://system/numpages/', $total, '/', 3))" />
и очевидно, что никто ничего не берет.
1. вы дважды обращаетесь к USEL по адресу usel://posts_blogUselCount/1/6137/6165/6179/6193///3/?p=0 и usel://posts_blogUselCount/1/6137/6165/6179/6193///
Это 2 раза выполнения запроса
Все это вместо одного обращения и закидывания результата в переменную
<xsl:variable name='usel_res' select="document('usel://posts_blogUselCount/1/6137/6165/6179/6193///')"/>
и обращения в дальнейшем к $usel_res
2. вы вызываете usel posts_blogUselCount, который в качестве параметра номер 8 принимает количество отображаемых на странице элементов (<limit page="0">{8}</limit>)
При этом 8-1 параметр вы не передаете
3. В качестве генерации numpages вы используете конкретное число 3 - то есть (предположительно) должно быть 3 элемента на странице. Видимо этот параметр и должен фигурировать в предыдущих всех выражениях?
Итого, ваш код должен был бы выглядеть примерно так:
<xsl:variable name='usel_per_page' select="3"/>
<xsl:variable name='usel_res' select="document(concat('usel://posts_blogUselCount/1/6137/6165/6179/6193///', $usel_per_page, '/?p=', $p))"/>
<xsl:for-each select="$usel_res/udata/page">
<xsl:value-of select="@id" />
</xsl:foreach>
<xsl:apply-templates select="document(concat('udata://system/numpages/', $usel_res//total, '/', $usel_per_page))" />