【发布时间】:2016-01-08 21:18:35
【问题描述】:
具有以下结构的巨大 XML:
<?xml version="1.0" encoding="UTF-8"?>
<productall>
<product type="electronics" date="1-1-2016">
<type name"Androidbased">
<product> InStock </product>
</type>
</product>
<product type="cloths" date="1-12-2008">
<type name"Jeans">
<product> InStock </product>
</type>
</product>
<product type="bags" date="1-12-2008">
<type name"FF">
<product> InStock </product>
</type>
</product>
</productall>
每种产品类型都有数千条记录,例如电子产品有 2000 条记录,布料有 8000 条记录。
我想将此 XML 文件拆分为多个 XML,每个 XML 包含 1000 条记录,无论其类型如何!
我已经使用基于 java 和 saxon 9 的 XSLT 2.0 来拆分它,但它不起作用,因为它应该是我到目前为止所做的:
java -jar sax.jar productall.xml split.xslt
Split.xslt
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:param name="productall" select="1000"></xsl:param>
<xsl:template match="/productall/product[@type]">
<xsl:for-each-group select="product" group-adjacent="(position()-1) idiv $productall">
<xsl:result-document href="part.{current-grouping-key()}.xml">
<productall>
<xsl:copy-of select="current-group()"></xsl:copy-of>
</productall>
</xsl:result-document>
</xsl:for-each-group>
</xsl:template>
</xsl:stylesheet>
结果在终端屏幕上打印出来,没有 XML 格式,也没有生成 .XML 文件。不知道命令语法或 XSLT 文件内容有什么问题?
【问题讨论】: