gpt4 book ai didi

xslt-1.0 遍历固定值列表

转载 作者:行者123 更新时间:2023-12-02 01:50:52 25 4
gpt4 key购买 nike

我需要根据可能包含也可能不包含每种语言信息的输入为固定数量的语言生成 XML 结构。如果缺少信息,我需要生成空元素。问题是,我需要在输出结构的许多地方迭代语言。

最简单的方法是使用类似的东西

<xsl:variable name="languages" select="en,de,fr">
<xsl:for-each select="$languages">
...
</xsl:for-each>

循环出现在我需要语言列表的地方。

当然这是行不通的,因为select="en,de,fr"没有定义节点列表。通过扩展,我可以使用 node-set功能,但我坚持使用 XSLT-1.0。

有什么方法可以定义一个常量节点集来迭代吗?

(这在某种程度上与 another question 有关,其中接受的答案扼杀了许多创建常量节点集的想法,特别是所有需要 <xsl:variable/> 的子元素的东西)

最佳答案

如果您想要一个常量 节点集,而不是其内容由xsl: 计算的节点集说明,那么你可以用document('')做一个技巧这使您可以访问样式表本身的 XML 树:

<xsl:variable name="languagesLiteral">
<lang>en</lang>
<lang>de</lang>
<lang>fr</lang>
</xsl:variable>

<xsl:variable name="languages"
select="document('')//xsl:variable[@name='languagesLiteral']/*" />

这只适用于静态值,例如 <xsl:variable name="foo"><xsl:for-each ...>然后是您从 document('') 获得的节点集技巧是 xsl:for-each元素,而不是评估它的结果。

关于xslt-1.0 遍历固定值列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22839803/

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