xslt 3.0转换帮助-按升序排序元素
我已经编写了xslt代码来按升序对记录进行排序。但是,整个程序在处理大量记录时会以运行时错误终止作业。提高性能的建议之一是用xslt 3.0编写代码。我不熟悉XSLT3.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
<?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流式处理功能的很好的解释。还有一个,先生。