xslt 3.0转换帮助-按升序排序元素

xslt 3.0转换帮助-按升序排序元素,xslt,xslt-3.0,Xslt,Xslt 3.0,我已经编写了xslt代码来按升序对记录进行排序。但是,整个程序在处理大量记录时会以运行时错误终止作业。提高性能的建议之一是用xslt 3.0编写代码。我不熟悉XSLT3.0,有人能帮我翻译下面的代码吗 <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xm

我已经编写了xslt代码来按升序对记录进行排序。但是,整个程序在处理大量记录时会以运行时错误终止作业。提高性能的建议之一是用xslt 3.0编写代码。我不熟悉XSLT3.0,有人能帮我翻译下面的代码吗

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:xs="http://www.w3.org/2001/XMLSchema" exclude-result-prefixes="xs" version="2.0">
    
    
    <xsl:output indent="no" method="xml"/>
    <xsl:param name="implMode"/>
    <xsl:strip-space elements="*"/>
    
    
    
    
    <xsl:template match="@* | node()">
        <xsl:copy>
            <xsl:apply-templates select="@* | node()"/>
        </xsl:copy>
    </xsl:template>
    
    <xsl:template match="root">
        <xsl:copy>
            <xsl:apply-templates select="row">
                
                <xsl:sort select="col5"
                    data-type="text" order="ascending"/>
                
                
                
            </xsl:apply-templates>
            
            
        </xsl:copy>
        
        
        
    </xsl:template>
    

</xsl:stylesheet>


我希望提出建议的人听说XSLT 3.0支持流式执行,这大大降低了处理大型文档的内存需求。然而,并不是所有的转换都是可流化的——只有在保持顺序的情况下才能流化转换,并且由于代码的主要目的是对数据进行排序,所以这里的情况并非如此

在研究如何解决这个问题时,我们首先需要一些数字。说数据“大”是不够的,这就像请求帮助设计一座跨越“宽”河的桥。给我们数字


如果数据真的太大而不能适应内存,你可能需要考虑将它加载到数据库中并将其排序,或者使用多遍排序算法(没有人知道如何写这些,它曾经是每个程序员的基本知识,实际上是每个穿孔卡片机房操作员,但这些天很少需要)。.

我希望提出建议的人听说XSLT 3.0支持流式执行,这大大降低了处理大型文档的内存需求。然而,并不是所有的转换都是可流化的——只有在保持顺序的情况下才能流化转换,并且由于代码的主要目的是对数据进行排序,所以这里的情况并非如此

在研究如何解决这个问题时,我们首先需要一些数字。说数据“大”是不够的,这就像请求帮助设计一座跨越“宽”河的桥。给我们数字


如果数据真的太大而不能适应内存,你可能需要考虑将它加载到数据库中并将其排序,或者使用多遍排序算法(没有人知道如何写这些,它曾经是每个程序员的基本知识,实际上是每个穿孔卡片机房操作员,但这些天很少需要)。.

感谢Michael的支持。8个文件的总大小约为1 GB。这是一个workday studio集成,它从workday cloud检索8个不同的文件,将合并的文件存储到一个变量中,然后1)按员工id对合并的文件进行排序(第一个xslt)2)按400000的块大小对上述xml进行分组,并按分组进行拆分,以生成行数限制为400k的多个文件。(第二个xslt-使用3.0流式处理)我将有效负载减少到300 mb,并且进程运行良好,没有任何超时问题。如果您有8个文件,如何对每个文件进行独立排序(在内存中),然后使用流式
xsl:merge
将8个排序的输入合并为一个排序的输出?关于3.0流式处理功能的很好的解释。还有一位先生,谢谢迈克尔的意见。8个文件的总大小约为1 GB。这是一个workday studio集成,它从workday cloud检索8个不同的文件,将合并的文件存储到一个变量中,然后1)按员工id对合并的文件进行排序(第一个xslt)2)按400000的块大小对上述xml进行分组,并按分组进行拆分,以生成行数限制为400k的多个文件。(第二个xslt-使用3.0流式处理)我将有效负载减少到300 mb,并且进程运行良好,没有任何超时问题。如果您有8个文件,如何对每个文件进行独立排序(在内存中),然后使用流式
xsl:merge
将8个排序的输入合并为一个排序的输出?关于3.0流式处理功能的很好的解释。还有一个,先生。