gpt4 book ai didi

xml - 使用 XSLT 将 XML 拆分为多个文件

转载 作者:数据小太阳 更新时间:2023-10-29 01:37:43 24 4
gpt4 key购买 nike

我很难理解 XSLT,但我听说可以将一个 XML 文件拆分成多个文件。基本上我想将所有元素复制到第一个文件和最后一个文件之后,然后为每个输出文件添加单独的文件内容。

如果可能的话,有人可以给我一些建议吗?

谢谢,

complete.xml

<rootelem>
<elem>
<file attr1='1'>
<content>content file 1</content>
</file>
<file attr2='2'>
<content>content file 2</content>
</file>
<file attr3='3'>
<content>content file 3</content>
</file>
</elem>
</rootelem>

输出:

complete_PART1.xml

<rootelem>
<elem>
<file attr1='1'>
<content>content file 1</content>
</file>
</elem>
</rootelem>

complete_PART2.xml

<rootelem>
<elem>
<file attr2='2'>
<content>content file 2</content>
</file>
</elem>
</rootelem>

complete_PART3.xml

<rootelem>
<elem>
<file attr3='3'>
<content>content file 3</content>
</file>
</elem>
</rootelem>

最佳答案

回应您对@Dimitre 的回答的评论...

你写的,

<xsl:template match="/">
<xsl:for-each select="elem/file">
<xsl:result-document method="xml" href="file_{@id}-output.xml">
<xsl:copy-of select="."/>
</xsl:result-document>
</xsl:for-each>
</xsl:template>

这与您的 XML 不太匹配,它具有 rootelem作为最外层元素,您的评论说 root作为最外层的元素。你可能想要这样的东西:

<xsl:template match="/root">
<xsl:for-each select="elem/file">
<xsl:result-document method="xml" href="file_{@id}-output.xml">
<root>
<xsl:copy-of select="/root/@*" />
<elem>
<xsl:copy-of select="../@* | ." />
</elem>
</root>
</xsl:result-document>
</xsl:for-each>
</xsl:template>

你可以变得更有趣,尝试使用 <xsl:copy>而不是 root 和 elem 的字面结果元素,但它似乎不值得付出努力,除非它们会发生变化。

关于xml - 使用 XSLT 将 XML 拆分为多个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4036233/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com