代码之家  ›  专栏  ›  技术社区  ›  Alasdair C-S

是否可以用XSLT样式表转换XSLT样式表?[副本]

  •  0
  • Alasdair C-S  · 技术社区  · 1 年前

    我有一个两步构建过程。在第一步中,我想将符合定义良好的XSD模式的小型XML文件中的配置读取到XSLT样式表中,然后输出另一个中间XSLT样式表,其中包含以下列表 <xsl:param /> 元素与配置XML中的数据。在第二步中,我想用一个样式表对我的主XML文档运行一个转换,该样式表引用第一步的输出 <xsl:include> .

    我陷入了第一步——因为XSLT转换器 理解 这个 <xsl:...> 模式,它不会盲目地输出该模式中的元素,就像它会输出其他模式中的所有元素一样。

    我使用XSLT 1.0是因为我在。净土地。

    我意识到可以(而且可能必须)编写一个控制台应用程序来读取配置XML并为转换设置全局参数,但我希望用XSLT来实现这一切。。。

    我试着在 <xsl:stylesheet> 元素,但我无法找到一种方法让它发出有效的XSLT样式表。

    1 回复  |  直到 1 年前
        1
  •  0
  •   Martin Honnen    1 年前

    是的,您可以使用XSLT生成XSLT,使用 <xsl:namespace-alias stylesheet-prefix = prefix | "#default" result-prefix = prefix | "#default" /> ,请参阅 https://www.w3.org/TR/xslt-10/#section-Creating-Elements-and-Attributes .

    至于仅限于XSLT 1.0,Saxon HE的存在是为了。来自Saxonica的.NET框架 https://www.nuget.org/packages/Saxon-HE 我已经重新包装了。NET 6或8 https://www.nuget.org/packages/SaxonHE10Net31Xslt 但这与名称空间别名无关。