我正在尝试创建一个样式表来将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
),其中包含由子节点property
组成的XML同一个文件夹。因此每个文件夹中都应包含小型XML。
答案 0 :(得分:1)
尝试以下几行:
<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>