我正在使用一个xslt文件来计算XML文件中具有特定值(以验证唯一性)并存储在xsl变量名中的元素数。这个xml文件是以编程方式创建的,元素数量的值有时可能超过100万。
由于这个高级别范围,我几乎不担心xsl:variable或count属性的范围限制。
我不知道xsl:variable或count属性是否有限制范围(起始范围和结束范围)?
答案 0 :(得分:4)
对于大多数XSLT处理器,在超出count()函数的限制之前,很可能会耗尽内存来存储XML文档。大约1Gb大约是您可能能够处理的最大值,并且不太可能超过大约1000万个节点。
答案 1 :(得分:4)
XPath 2.0使用XML Schema规范中定义的类型xs:integer
:
3.3.13整数
[定义:]整数是·派生的· 通过固定值的十进制 ·fractionDigits·为0和 不允许尾随小数 点。这导致了标准 整数的数学概念 数字。 整数的值空间 是无限集 {..., - 2,-1,0,1,2,...}。 ·基础类型· 整数是十进制。
因此,只有XSLT处理器的特定实现可以潜在地定义它实现的xs:integer
类型的值空间的任何上限。
例如,Saxon XSLT 2.0处理器实现了“Big Integer”类型(和Big Integer算术)。可以合理地预期任何表示适合可用内存的整数都可以在Saxon中表示和使用。
答案 2 :(得分:3)
请看规范的这一部分:http://www.w3.org/TR/xpath/#numbers
答案 3 :(得分:2)
至少大多数实现都能够处理带符号的32位数字(大约214左右),所以10万就能正常工作。