gpt4 book ai didi

xml - 如何从 XSLT 调用 XSLT?

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

我正在寻找从第一个 XSLT 调用第二个 XSLT 的可能性。

我的 XML 输入看起来像

<xml>
<Subject name ="A1" type="a">
<Subject name ="B2" type="b">
<Subject name ="C1" type="c">
<Subject name ="A2" type="a">
<Subject name ="B1" type="b">
<Subject name ="C2" type="c">
<Subject name ="A3" type="a">
</xml>

我想做的是类似

<xsl>
if type = "a" call "XSL_A" with above XML-Input
if type = "b" call "XSL_B" with above XML-Input
if type = "c" call "XSL_C" with above XML-Input

Do-Something with above XML-Input
<xsl>

每个“sub-xslt”都应获取完整的输入并对其进行处理,包括创建一个特殊的命名文件。

因为在网络上搜索解决方案或提示没有成功。这可能吗?甚至是明智的?

最佳答案

Or even sensible?

不,考虑按程序调用 XSLT 是不明智的,但是您提出这个问题是一个好兆头,表明您认识到可能有更好的方法...

模式匹配

不要从“调用”其他 XSLT 的角度考虑程序。而是根据输入的模式匹配声明式思考。

为了

<Subject name ="A1" type="a"/>

思考

  • if type = "a"call "XSL_A"with above XML-Input

思考

  • 当匹配@type"a"Subject时,输出something

或者,在 XSLT 中,

<xsl:template match="Subject[@type='a']>
<something id="{@name}"/>
</xsl>

这样

<Subject name ="A1" type="a"/>

翻译成

<something id="a"/>

在输出中。


XSLT 文件组织

正交于上述匹配驱动的设计方法,可以组织和组合 XSLT 文件。使用 xs:include 引入另一个样式表作为您正在编写的样式表的独立部分;使用 xs:import 引入另一个类似或基于您正在编写的样式表的样式表,以便您想要覆盖模板。

有关 xs:includexs:import 的更多详细信息,请参阅:

模式

最后,与上述两个维度正交的是,XSLT 支持用于控制模板适用性的模式。有关模式的更多信息,请参阅 Can one give me the example for “mode” of template in xsl

关于xml - 如何从 XSLT 调用 XSLT?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38524500/

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