gpt4 book ai didi

xslt - 加入 2 个带有文档功能的 XML 非常慢

转载 作者:行者123 更新时间:2023-12-01 17:48:03 26 4
gpt4 key购买 nike

我有 XML 我需要加入 ID

XML 输入(93 Mb)

<?xml version="1.0" encoding="UTF-8"?>
<root>
<Partner>
<ID>186561</ID>
</Partner>
...
<root>

XML:fuzzymatched.xml(40 Mb)

<?xml version="1.0" standalone="yes"?>
<root>
<Partner>
<ID>186561</ID>
<FUZZYMATCH>71</FUZZYMATCH>
</Partner>
...
<root>

当我使用以下 XSLT 加入此文件时,速度非常慢。好像每次都要打开大文件?!有更好的解决方案吗?还是我做错了什么。我使用的是 Talend Open Studio 的 XSLT 引擎

XSLT 文件

<!-- ********************************************* -->
<!-- fuzzymatch_joiner.xsl : -->
<!-- ********************************************* -->
<xsl:stylesheet version="1.1" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes" />

<xsl:variable name="vPartners" select="document('file:///c:/temp/fuzzymatched.xml')/root" />

<xsl:template match="root">
<xsl:copy>
<xsl:apply-templates select="Partner"></xsl:apply-templates>
</xsl:copy>
</xsl:template>
<!-- ********************************************* -->

<xsl:template match="Partner">
<xsl:copy>
<xsl:apply-templates select="@*|node()"></xsl:apply-templates>
<xsl:copy-of select="$vPartners/Partner[ID = current()/ID]/FUZZYMATCH"/>
</xsl:copy>
</xsl:template>
<!-- ********************************************* -->

<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<!-- ********************************************* -->

</xsl:stylesheet>

最佳答案

由于 XML 文件的大小,您需要更改默认设置的解析器 (DOM) 并改用 SAX 解析器。

在 tFileInputXML 组件上,选择高级参数并选择SAX 解析器(标记为:“low memory consuming”,如果我没记错的话)。xml 处理应该快得多。

关于xslt - 加入 2 个带有文档功能的 XML 非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19862472/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com