xslt中count属性的范围是多少?
Posted
技术标签:
【中文标题】xslt中count属性的范围是多少?【英文标题】:What is the range of count attribute in xslt? 【发布时间】:2011-09-29 07:56:31 【问题描述】:我正在使用一个 xslt 文件来计算 XML 文件中具有特定值(以验证唯一性)并存储在 xsl 变量名中的元素的数量。此 xml 文件是以编程方式创建的,元素数量的值有时可能会超过 100 万。
由于这个高级别范围,我有点担心 xsl:variable 或 count 属性的范围限制。
不知道 xsl:variable 或 count 属性是否有限制范围(起始范围和结束范围)?
【问题讨论】:
好问题,+1。请参阅我的回答,了解详尽回答您问题的确切事实信息。 【参考方案1】:对于大多数 XSLT 处理器,您很可能在超过 count() 函数的限制之前很久就用完了存储 XML 文档的内存。大约 1Gb 大约是您可能能够处理的最大值,并且不太可能超过大约 1000 万个节点。
【讨论】:
【参考方案2】:XPath 2.0 使用 XML Schema 规范中定义的类型 xs:integer
:
3.3.13 整数
[定义:]整数是·派生· 通过固定的值从十进制 ·fractionDigits·为0和 不允许尾随小数 观点。这导致标准 整数的数学概念 数字。 整数的·值空间· 是无限集 ...,-2,-1,0,1,2,...。 ·基础型· 整数是十进制的。
因此,只有 XSLT 处理器的特定实现才能潜在地为其实现的 xs:integer
类型的值空间定义任何上限。
例如,Saxon XSLT 2.0 处理器实现了“大整数”类型(和大整数算法)。可以合理地期望任何整数,只要其表示适合可用内存,就可以在 Saxon 中表示和使用。
【讨论】:
【参考方案3】:看这部分规范:http://www.w3.org/TR/xpath/#numbers
【讨论】:
【参考方案4】:至少大多数实现都能够处理带符号的 32 位数字(大约 214 千万),所以 100 万就可以了。
【讨论】:
以上是关于xslt中count属性的范围是多少?的主要内容,如果未能解决你的问题,请参考以下文章