我正在尝试创建一个样式表,将XML转换为其他格式的XML,在此过程中,它应该创建多个XML文件,这些文件放在不同的文件夹中。我正在尝试处理的XML文件非常大(大约50000行),我想自动化它。所以我不必硬编码每一节。例如,如果我有一个简单的XML,如下所示:
<Site>
<element run="test1">
<property name="aaa"/>
<property name="bbb"/>
<property name="ccc"/>
<element run="test2">
<property name="aaa"/>
<property name="bbb"/>
<property name="ccc"/>
<element run="test3">
<property name="aaa"/>
<property name="bbb"/>
<property name="ccc"/>
</element>
</element>
</element>
XSLT应该创建名为test1
的文件夹,并将test2
、test3
作为子文件夹(test1/test2/test3
),其中XML由同一文件夹中的子节点property
组成。因此,每个文件夹中都应该有小的XML。
尝试以下操作:
<xsl:template match="Site">
<xsl:apply-templates select="//element"/>
</xsl:template>
<xsl:template match="element">
<xsl:result-document href="{string-join(ancestor-or-self::element/@run, '/')}/properties.xml">
<root>
<xsl:copy-of select="property"/>
</root>
</xsl:result-document>
</xsl:template>