gpt4 book ai didi

xml - XSL 2.0 避免来自 xsl :result-document 的重复输出

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

我正在使用 xsl:result-document 将一个输入 XML 文件拆分为多个子文档。当我的转换在输入文件上的一个大数组上运行时,一些输入“有数据”使得 xsl:result-document 尝试创建相同的输出文件两次,因此遇到错误。

理想情况下,我只想创建第二个文档,并在文件扩展名前附加“_2”。我是 XSL 2.0 的新手,无法想象如何完成此操作。拥有一个对文档来说是全局的数组(更像是一个 map ),我可以保留其中使用的每个输出文件名(以及一个计数器)会很棒。不过,在 XSL 中执行此操作似乎并不简单。有没有人对如何去做有任何想法?

XSL 变量的范围让我感到困惑,我想知道这是否可能。例如,如果我在第一个匹配的模板中创建一个变量,那么该变量是否在模板中可见,作为第一个匹配模板的应用模板“调用”的结果?

另一个想法,是否可以使用一些疯狂的“身份转换”来查找重复项并将“_2”附加到数据,然后再进行进一步的模板匹配?

感谢您的宝贵时间。

使用结果文档使用示例进行编辑:

 <xsl:result-document href="{$directory_name}{$misc_string}.xml" format="MainOutput" cdata-section-elements="SomeSection">

克里斯

最佳答案

你可以使用 generate-id() ...

<xsl:result-document href="{$directory_name}{$misc_string}{generate-id()}.xml" 
format="MainOutput" cdata-section-elements="SomeSection">

你也可以使用 xsl:number ,但没有工作示例(XML 和 XSLT),很难提供示例。 (上下文非常重要。)这很可能是它的样子:

<xsl:variable name="nbr">
<xsl:number level="any"/>
</xsl:variable>
<xsl:result-document href="{$directory_name}{$misc_string}_{$nbr}.xml"
format="MainOutput" cdata-section-elements="SomeSection">

查看 xsl:number 链接并尝试使用一些属性(如 @count),这应该可以做到。

关于xml - XSL 2.0 避免来自 xsl :result-document 的重复输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20023529/

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