我有两个这样的 xml 文件(一个有 2000 个,另一个有大约 9000 个项目)
<list>
<mods ID="uuid-1...">
<stuff/>
</mods>
<mods ID="uuid-2..."/>
...
</list>
我使用以下 xsl 将每条记录拆分为自己的文件:
<?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" xmlns:mods="http://www.loc.gov/mods/v3"
exclude-result-prefixes="xs"
version="2.0">
<xsl:template match="/">
<xsl:for-each select="list/mods:mods">
<xsl:result-document method="xml" indent="yes" omit-xml-declaration="yes" href="{./@ID}.xml">
<xsl:copy-of select="." />
</xsl:result-document>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
对于较小的列表,这需要几秒钟才能完成,对于较长的列表则需要数小时。它返回所需的结果,但仍有办法加快速度吗?我使用撒克逊 9.6.0.5