[英]How to create a streamable XSLT transformation?
我想将下面结构的xml文件转换为与此非常相似的另一个文件,假设每个元素名称都发生了变化(即A..F-> ANew..FNew)。 我想以XSLT 3.0使用Saxon-EE v9.7引入的流模式进行操作,因为我需要处理非常大的文件。 尽管我可以部分成功(根/头部分),但由于无法满足Saxon-EE所适用的流动性规则,我无法提出一个完全解决整个文档的解决方案,我迷失了其中……我很感谢任何xslt建议可以在Saxon-EE v9.7的流模式下工作。
<Root>
<Head>
<A/>
<B/>
</Head>
<Grp>
<D/>
<E/>
<SubGrp>
<E/>
<F/>
</SubGrp>
<SubGrp>
<E/>
<F/>
</SubGrp>
</Grp>
<Grp>
<D/>
<E/>
<SubGrp>
<E/>
<F/>
</SubGrp>
<SubGrp>
<E/>
<F/>
</SubGrp>
</Grp>
</Root>
如果您使用
<xsl:mode streamable="yes" on-no-match="shallow-copy"/>
然后,如果您需要重命名某些元素,则可以添加模板,例如
<xsl:template match="A">
<ANew>
<xsl:apply-templates/>
</ANew>
</xsl:template>
<xsl:template match="F">
<FNew>
<xsl:apply-templates/>
</FNew>
</xsl:template>
如果您仍然有问题,请向我们显示您的XSLT以及Saxon给您的确切错误消息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.