创建多个XML文件& XSLT的文件夹

时间:2014-10-22 11:43:45

标签: xml xslt directory xslt-1.0 xslt-2.0

我正在尝试创建一个样式表来将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的文件夹,并将test2test3作为子文件夹(test1/test2/test3),其中包含由子节点property组成的XML同一个文件夹。因此每个文件夹中都应包含小型XML。

1 个答案:

答案 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>