2011-03-14 38 views
1

我們的客戶/客戶與我們聯繫了一個可能的錯誤,在找到一個錯誤之後,我們找不到一個錯誤。500上的XSLT限制?

問題是,客戶端有一個留言簿,這是一個評論列表,所以我們只是列出所有評論,但由於某種原因,它不能超過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中是否存在某種限制,使得每個for-each中的子節點不可能超過500個?誠然,count(...)也不會超過499。在客戶端站點上運行的XSLT腳本中有一個計數,它也顯示499。

編輯: 原來沒有錯以外的ID至極客戶分類後由被轉換成字符串,從而在10000個節點ID是不超過9000點再大(排序方式) id和這些新帖子首先在列表中顯示,因爲第一個節點的id是從6000開始的。我們只是改變了排序字段,並且它們都工作得很好。

+0

等一下。你同時顯示500個條目?! – Flack 2011-03-14 11:56:54

+0

你忘了提供需要重新編碼的XML文件...我們不是clairevoyants。 – 2011-03-14 12:51:02

回答

2

不,XSLT本身沒有限制,但是XSLT是規範而不是實現。也就是說,我很難相信XSLT實現會以你描述的方式有任意限制。

請考慮查看源XML數據。也許是導致這個問題的原因。也許無論寫入數據是不小心將其截斷爲500條記錄。

+0

我們最近做了另一個發現,顯然是伯爵,所以它本身是正確的。我們從緩存中複製了一些節點,並且節點數超過了500.但是並不是所有的帖子都顯示出來了。 – Azazel 2011-03-14 12:07:32

+0

@Azazel:你用來查看結果*的應用程序有可能有這個限制嗎? – 2011-03-14 13:04:04

+0

我們最近做了另一個發現,顯然伯爵,因此它本身是正確的。我們從緩存中複製了一些節點,並且節點數超過了500.但是並不是所有的帖子都顯示出來了。 未顯示帖子的ID超過1000,如果我修改他們的ID低於10K,那麼他們出現了。這是很奇怪的,因爲客戶在同一個網站上打開了一個新的留言簿,現在工作起來應該是這樣(只顯示7個帖子),但其他人的ID在10k以上。對不起,我發了一篇文章。 – Azazel 2011-03-14 13:19:36