Клиент / наш клиент связался с нами по поводу возможной ошибки, и после некоторого поиска ошибки мы не можем ее найти.
Проблема в том, что у клиента есть гостевая книга, которая представляет собой список комментариев, поэтому мы просто помещаем список всех комментариев, но по какой-то причине он не может пройти дальше 500. 1-499 - это сообщения, которые мы получаем обратно. Я сделал простой XSLT-скрипт для его тестирования, но не могу получить больше 500.
Вот мой тестовый скрипт:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt"
exclude-result-prefixes="msxsl">
<xsl:output method="html" indent="yes"/>
<xsl:template match="/">
<ol>
<xsl:for-each
select="/descendant::node[@id='6221']
/node[@nodeTypeAlias = 'BlogPostComment']">
<!--<xsl:sort select="@id" order="descending" />-->
<li>
<xsl:value-of select="@nodeName"/>
<p>
<xsl:value-of select="./data[@alias = 'comment']"/>
</p>
</li>
</xsl:for-each>
</ol>
</xsl:template>
</xsl:stylesheet>
Я пробовал скрипт как с, так и без xslt:sort
, но ни один из них не дает мне больше сообщений. Есть ли какой-то предел в XSLT, который делает невозможным получение более 500 подузлов для каждого? По-видимому, count(...)
тоже не получает больше 499. В сценарии XSLT, запущенном на сайте клиентов, есть счетчик, который также показывает 499.
РЕДАКТИРОВАТЬ :
Оказалось, что нет ничего плохого, кроме идентификатора, по которому клиент сортировал сообщение, по которому он был преобразован в строку, и, таким образом, идентификаторы узла 10000 больше не были (с точки зрения сортировки), чем идентификаторы узла 9000, и эти новые сообщения были показаны первыми в списке поскольку первые узлы имели идентификатор, начинающийся с 6000. Мы просто изменили поле сортировки, и все снова заработало нормально.