XSLT лимит на 500? - PullRequest
       1

XSLT лимит на 500?

1 голос
/ 14 марта 2011

Клиент / наш клиент связался с нами по поводу возможной ошибки, и после некоторого поиска ошибки мы не можем ее найти.

Проблема в том, что у клиента есть гостевая книга, которая представляет собой список комментариев, поэтому мы просто помещаем список всех комментариев, но по какой-то причине он не может пройти дальше 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. Мы просто изменили поле сортировки, и все снова заработало нормально.

1 Ответ

2 голосов
/ 14 марта 2011

Нет, сам XSLT не имеет ограничений, однако XSLT является спецификацией, а не реализацией. Тем не менее, мне было бы трудно поверить, что реализация XSLT будет иметь произвольные ограничения в способе, который вы описываете.

Рассмотрите возможность просмотра исходных данных XML. Возможно, что-то там вызывает проблему. Возможно, все, что записывает данные, случайно усекает их до 500 записей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...